source: trunk/grails-app/conf/dbnp/configuration/BootStrapAuthentication.groovy @ 1706

Last change on this file since 1706 was 1706, checked in by work@…, 9 years ago
  • sometimes authentication bootstrap users are not available, flushing inserts now
  • Property svn:keywords set to Rev Author Date
File size: 1.5 KB
Line 
1package dbnp.configuration
2import dbnp.authentication.*
3import org.codehaus.groovy.grails.commons.ConfigurationHolder
4
5/**
6 * @Author Jeroen Wesbeek <work@osx.eu>
7 * @Since 20101111
8 *
9 * Revision information:
10 * $Rev: 1706 $
11 * $Author: work@osx.eu $
12 * $Date: 2011-04-05 15:01:13 +0000 (di, 05 apr 2011) $
13 */
14class BootStrapAuthentication {
15        /**
16         * set up the initial roles and users if required
17         * @visibility  public
18         * @void
19         */
20        public static void initDefaultAuthentication(springSecurityService) {
21                // Grom a development message
22                if (String.metaClass.getMetaMethod("grom")) "setting up default authentication".grom()
23
24                // user work variable
25                def user=null
26
27                // get configuration
28                def config = ConfigurationHolder.config
29
30                // create the admin role
31                def adminRole = SecRole.findByAuthority('ROLE_ADMIN') ?: new SecRole(authority: 'ROLE_ADMIN').save(flush:true, failOnError:true)
32
33                // iterate through default users, see
34                //      - grails-app/conf/config-environment.properties
35                //      - ~/.grails-config/environment-gscf.properties
36                config.authentication.users.each { key, values ->
37                        // make sure we do not add duplicate users
38                        if (!SecUser.findAllByUsername(values.username)) {
39                                // create user instance
40                                user = new SecUser(
41                                        username:values.username,
42                                        password:springSecurityService.encodePassword( values.password , values.username ),
43                                        email:values.email,
44                                        userConfirmed: true,
45                                        adminConfirmed: true
46                                ).save(flush:true, failOnError: true)
47
48                                // is this user an administrator?
49                                if (values.administrator == 'true') {
50                                        SecUserSecRole.create(user, adminRole, true)
51                                }
52                        }
53                }
54        }
55}
Note: See TracBrowser for help on using the repository browser.