Changeset 830


Ignore:
Timestamp:
Aug 23, 2010, 3:40:32 PM (10 years ago)
Author:
keesvb
Message:

moved Nimble BootStrap? to BootStrap? (there seems to be no way to hack the Nimble Bootstrap to execute before the application BootStrap?), assigned the example studies to the example user, updated study/show to show the study user

Location:
trunk/grails-app
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/conf/BootStrap.groovy

    r816 r830  
    66import org.codehaus.groovy.grails.commons.GrailsApplication
    77import grails.util.GrailsUtil
     8
     9// Imports for Nimble
     10import grails.plugins.nimble.InstanceGenerator
     11import grails.plugins.nimble.core.LevelPermission
     12import grails.plugins.nimble.core.Role
     13import grails.plugins.nimble.core.Group
     14import grails.plugins.nimble.core.AdminsService
     15import grails.plugins.nimble.core.UserService
    816
    917/**
     
    1826 */
    1927class BootStrap {
     28
     29        // Injections for Nimble
     30        def grailsApplication
     31        def nimbleService
     32        def userService
     33        def adminsService
     34
    2035        def init = {servletContext ->
    2136                // define timezone
    2237                System.setProperty('user.timezone', 'CET')
     38
     39                // If there are no users yet in the database
     40                println "Executing Nimble bootstrap..."
     41
     42            // The following must be executed
     43            nimbleService.init()
     44
     45            // Add users
     46                def user
     47
     48                if (dbnp.user.User.count() == 0) {
     49
     50                        println "Adding example user..."
     51
     52                        // Create example User account
     53                        user = InstanceGenerator.user()
     54                        user.username = "user"
     55                        user.pass = 'useR123!'
     56                        user.passConfirm = 'useR123!'
     57                        user.enabled = true
     58
     59                        def userProfile = InstanceGenerator.profile()
     60                        userProfile.fullName = "Test User"
     61                        userProfile.owner = user
     62                        user.profile = userProfile
     63
     64                        def savedUser = userService.createUser(user)
     65                        if (savedUser.hasErrors()) {
     66                          savedUser.errors.each {
     67                                log.error(it)
     68                          }
     69                          throw new RuntimeException("Error creating example user")
     70                        }
     71
     72                        println "Adding example admin user..."
     73
     74                        // Create example Administrative account
     75                        def admins = Role.findByName(AdminsService.ADMIN_ROLE)
     76                        def admin = InstanceGenerator.user()
     77                        admin.username = "admin"
     78                        admin.pass = "admiN123!"
     79                        admin.passConfirm = "admiN123!"
     80                        admin.enabled = true
     81
     82                        def adminProfile = InstanceGenerator.profile()
     83                        adminProfile.fullName = "Administrator"
     84                        adminProfile.owner = admin
     85                        admin.profile = adminProfile
     86
     87                        def savedAdmin = userService.createUser(admin)
     88                        if (savedAdmin.hasErrors()) {
     89                          savedAdmin.errors.each {
     90                                log.error(it)
     91                          }
     92                          throw new RuntimeException("Error creating administrator")
     93                        }
     94
     95                        adminsService.add(admin)
     96                }
     97                else {
     98                        user = dbnp.user.User.findByUsername("user")
     99                }
     100
     101                println "Done with Nimble bootstrap"
    23102
    24103                // If there are no templates yet in the database
     
    60139                                } else {
    61140                                        // general study boostrapping
    62                                         BootStrapStudies.addExampleStudies()
     141                                        BootStrapStudies.addExampleStudies(user)
    63142                                }
    64143                        }
  • trunk/grails-app/conf/BootStrapStudies.groovy

    r821 r830  
    1919         */
    2020
    21         public static void addExampleStudies() {
     21        public static void addExampleStudies(dbnp.user.User owner) {
    2222
    2323                // Look up the used ontologies which should be in the database by now
     
    168168                        ecCode:"2007117.c",
    169169                        startDate: Date.parse('yyyy-MM-dd','2008-01-02'),
     170                        owner: owner
    170171                ).with { if (!validate()) { errors.each { println it} } else save()}
    171172
     
    374375                        ecCode:"unknown",
    375376                        startDate: Date.parse('yyyy-MM-dd','2008-01-14'),
     377                        owner: owner
    376378                )
    377379                .setFieldValue( 'Description', "Human study performed at RRI; centres involved: RRI, IFR, TUM, Maastricht U." )
  • trunk/grails-app/conf/NimbleBootStrap.groovy

    r829 r830  
    1717 
    1818
    19 import grails.plugins.nimble.InstanceGenerator
    20 
    21 import grails.plugins.nimble.core.LevelPermission
    22 import grails.plugins.nimble.core.Role
    23 import grails.plugins.nimble.core.Group
    24 import grails.plugins.nimble.core.AdminsService
    25 import grails.plugins.nimble.core.UserService
    26 
    2719/*
    2820 * Allows applications using Nimble to undertake process at BootStrap that are related to Nimbe provided objects
     
    3426class NimbleBootStrap {
    3527
    36   def grailsApplication
    37  
    38   def nimbleService
    39   def userService
    40   def adminsService
    4128
    42   def init = {servletContext ->
    43 
    44         println "Executing Nimble bootstrap..."
    45 
    46     // The following must be executed
    47     internalBootStap(servletContext)
    48 
    49     // Execute any custom Nimble related BootStrap for your application below
    50 
    51         println "Adding example user..."
    52 
    53         if (0 && dbnp.user.User.count() == 0) {
    54 
    55                 // Create example User account
    56                 def user = InstanceGenerator.user()
    57                 user.username = "user"
    58                 user.pass = 'useR123!'
    59                 user.passConfirm = 'useR123!'
    60                 user.enabled = true
    61 
    62                 def userProfile = InstanceGenerator.profile()
    63                 userProfile.fullName = "Test User"
    64                 userProfile.owner = user
    65                 user.profile = userProfile
    66 
    67                 def savedUser = userService.createUser(user)
    68                 if (savedUser.hasErrors()) {
    69                   savedUser.errors.each {
    70                         log.error(it)
    71                   }
    72                   throw new RuntimeException("Error creating example user")
    73                 }
    74 
    75                 println "Adding example admin user..."
    76 
    77                 // Create example Administrative account
    78                 def admins = Role.findByName(AdminsService.ADMIN_ROLE)
    79                 def admin = InstanceGenerator.user()
    80                 admin.username = "admin"
    81                 admin.pass = "admiN123!"
    82                 admin.passConfirm = "admiN123!"
    83                 admin.enabled = true
    84 
    85                 def adminProfile = InstanceGenerator.profile()
    86                 adminProfile.fullName = "Administrator"
    87                 adminProfile.owner = admin
    88                 admin.profile = adminProfile
    89 
    90                 def savedAdmin = userService.createUser(admin)
    91                 if (savedAdmin.hasErrors()) {
    92                   savedAdmin.errors.each {
    93                         log.error(it)
    94                   }
    95                   throw new RuntimeException("Error creating administrator")
    96                 }
    97 
    98                 adminsService.add(admin)
    99         }
    100 
    101         println "Done with Nimble bootstrap"
    102 
     29  def init = { servletContext ->
     30          // Skipping the normal Nimble (plugin) bootstrap initialization because we already called it earlier
    10331  }
    10432
    10533  def destroy = {
    106 
    10734  }
    10835
    109   private internalBootStap(def servletContext) {
    110     nimbleService.init()
    111   }
    11236}
  • trunk/grails-app/domain/dbnp/user/Profile.groovy

    r814 r830  
    22package dbnp.user
    33
    4 class Profile extends grails.plugins.nimble.core.ProfileBase {
     4class Profile extends grails.plugins.nimble.core.ProfileBase implements Serializable {
    55
    66        // Extend ProfileBase with your custom values here
  • trunk/grails-app/domain/dbnp/user/User.groovy

    r814 r830  
    22package dbnp.user
    33
    4 class User extends grails.plugins.nimble.core.UserBase {
     4class User extends grails.plugins.nimble.core.UserBase implements Serializable {
    55
    66        // Extend UserBase with your custom values here
    77
     8        def String toString() {
     9                return username;
     10        }
     11
    812}
  • trunk/grails-app/views/study/show.gsp

    r824 r830  
    273273              </g:each>
    274274            </tr>
     275                          <tr>
     276                                <td>Owner</td>
     277                                <g:each in="${studyList}" var="studyInstance">
     278                                  <td>
     279                                        <g:if test="${studyInstance.owner}">
     280                                                <g:link controller="user" action="show" id="${studyInstance.owner.id}">${studyInstance.owner?.encodeAsHTML()}</g:link>
     281                                        </g:if>
     282                                        <g:else>
     283                                         -
     284                                        </g:else>
     285                                  </td>
     286                                </g:each>
     287                          </tr>
    275288            <tr>
    276289              <td>Readers</td>
Note: See TracChangeset for help on using the changeset viewer.