source: trunk/grails-app/services/AuthService.groovy @ 843

Last change on this file since 843 was 396, checked in by gav, 15 years ago

Add a random password generator to AuthService.

File size: 1.3 KB
Line 
1/**
2 * Provides a service class with some methods that integrate the Person domain class and Acegi security.
3 *
4 */
5class AuthService {
6
7    boolean transactional = false
8
9    def authenticateService
10
11    /**
12    * Get the current user in a safe way to avoid a null userDomain.
13    * @returns The current user or the 'system' person (Person #1) if userDomain() is not active.
14    */
15    def getCurrentUser() {
16        if(authenticateService.userDomain()) {
17            return Person.get(authenticateService.userDomain().id)
18        }
19        else {
20            log.warn "userDomain not active, attempting to return Person #1."
21            return Person.get(1)
22        }
23    }
24
25    /**
26    * Convenience wrapper around authenticateService.encodePassword().
27    * @param passClearText The clear text password to encode.
28    * @returns The encoded password.
29    */
30    def encodePassword(passClearText) {
31        authenticateService.encodePassword(passClearText)
32    }
33
34    /**
35    * Generate a random password.
36    * @returns The generated password.
37    */
38    def getRandomPassword() {
39        def passwd = ""
40        def pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
41        def rand = new Random(System.currentTimeMillis())
42
43        for(i in 0..10)
44            passwd += pool[rand.nextInt(pool.length())]
45
46        return passwd
47    }
48
49}
Note: See TracBrowser for help on using the repository browser.