Changeset 936

Show
Ignore:
Timestamp:
11-10-10 22:23:13 (4 years ago)
Author:
t.w.abma@…
Message:

- Nimble removed, AAAA-plugin installed (based on Spring Security), login panel needs fix still, please login using gscf/login

Location:
trunk
Files:
7 removed
16 modified

Legend:

Unmodified
Added
Removed
  • trunk/application.properties

    r905 r936  
    11#Grails Metadata file 
    2 #Mon Oct 04 11:22:09 CEST 2010 
     2#Mon Oct 11 16:09:19 CEST 2010 
    33app.grails.version=1.3.4 
    44app.name=gscf 
    55app.servlet.version=2.4 
    66app.version=0.5.0 
     7plugins.aaaa=0.3.4 
    78plugins.crypto=2.0 
    89plugins.db-util=0.4 
     
    1213plugins.mail=0.9 
    1314plugins.nadd-neutralizer=0.3 
    14 plugins.nimble=0.4-SNAPSHOT 
    1515plugins.oauth=0.10 
    1616plugins.searchable=0.5.5.1 
    17 plugins.shiro=1.0.1 
     17plugins.spring-security-core=1.0.1 
    1818plugins.tomcat=1.3.4 
    1919plugins.webflow=1.3.4 
  • trunk/grails-app/conf/BootStrap.groovy

    r860 r936  
    66import org.codehaus.groovy.grails.commons.GrailsApplication 
    77import grails.util.GrailsUtil 
     8import org.nmcdsp.plugins.aaaa.SecUser 
    89 
    9 // Imports for Nimble 
    10 import grails.plugins.nimble.InstanceGenerator 
    11 import grails.plugins.nimble.core.LevelPermission 
    12 import grails.plugins.nimble.core.Role 
    13 import grails.plugins.nimble.core.Group 
    14 import grails.plugins.nimble.core.AdminsService 
    15 import grails.plugins.nimble.core.UserService 
    1610 
    1711/** 
     
    2620 */ 
    2721class BootStrap { 
    28  
    29         // Injections for Nimble 
    30         def grailsApplication 
    31         def nimbleService 
    32         def userService 
    33         def adminsService 
     22        def springSecurityService 
    3423 
    3524        def init = {servletContext -> 
     
    3726                System.setProperty('user.timezone', 'CET') 
    3827 
    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                         println "Adding example user..." 
    50  
    51                         // Create example User account 
    52                         user = InstanceGenerator.user() 
    53                         user.username = "user" 
    54                         user.pass = 'useR123!' 
    55                         user.passConfirm = 'useR123!' 
    56                         user.enabled = true 
    57  
    58                         def userProfile = InstanceGenerator.profile() 
    59                         userProfile.fullName = "Test User" 
    60                         userProfile.owner = user 
    61                         user.profile = userProfile 
    62  
    63                         def savedUser = userService.createUser(user) 
    64                         if (savedUser.hasErrors()) { 
    65                           savedUser.errors.each { 
    66                                 log.error(it) 
    67                           } 
    68                           throw new RuntimeException("Error creating example user") 
    69                         } 
    70  
    71                         println "Adding example admin user..." 
    72  
    73                         // Create example Administrative account 
    74                         def admins = Role.findByName(AdminsService.ADMIN_ROLE) 
    75                         def admin = InstanceGenerator.user() 
    76                         admin.username = "admin" 
    77                         admin.pass = "admiN123!" 
    78                         admin.passConfirm = "admiN123!" 
    79                         admin.enabled = true 
    80  
    81                         def adminProfile = InstanceGenerator.profile() 
    82                         adminProfile.fullName = "Administrator" 
    83                         adminProfile.owner = admin 
    84                         admin.profile = adminProfile 
    85  
    86                         def savedAdmin = userService.createUser(admin) 
    87                         if (savedAdmin.hasErrors()) { 
    88                           savedAdmin.errors.each { 
    89                                 log.error(it) 
    90                           } 
    91                           throw new RuntimeException("Error creating administrator") 
    92                         } 
    93  
    94                         adminsService.add(admin) 
    95                 } 
    96                 else { 
    97                         user = dbnp.user.User.findByUsername("user") 
    98                 } 
    99  
    100                 println "Done with Nimble bootstrap" 
     28                def user = SecUser.findByUsername('user') ?: new SecUser( 
     29                        username: 'user', 
     30                        password: springSecurityService.encodePassword('useR123!'), 
     31                        enabled: true).save(failOnError: true) 
     32                 
     33                println "Done with SpringSecurity bootstrap, created [user]." 
    10134 
    10235                // If there are no templates yet in the database 
  • trunk/grails-app/conf/BootStrapStudies.groovy

    r882 r936  
    1919         */ 
    2020 
    21         public static void addExampleStudies(dbnp.user.User owner) { 
     21        public static void addExampleStudies(org.nmcdsp.plugins.aaaa.SecUser owner) { 
    2222 
    2323                // Look up the used ontologies which should be in the database by now 
  • trunk/grails-app/conf/BuildConfig.groovy

    r776 r936  
    1818 */ 
    1919//grails.plugin.repos.discovery.intient = "http://intient.com/downloads/grails/" 
    20 return true; 
     20grails.project.dependency.resolution = { 
     21    // inherit Grails' default dependencies 
     22    inherits("global") { 
     23        // uncomment to disable ehcache 
     24        // excludes 'ehcache' 
     25    } 
     26    log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
     27    repositories { 
     28        grailsPlugins() 
     29        grailsHome() 
     30//        mavenRepo "http://nmcdsp.org:8080/nexus-webapp-1.7.2/content/repositories/releases/" 
     31        mavenRepo "http://nexus.nmcdsp.org/content/repositories/releases" 
     32        grailsCentral() 
     33 
     34        // uncomment the below to enable remote dependency resolution 
     35        // from public Maven repositories 
     36        //mavenLocal() 
     37        //mavenCentral() 
     38        //mavenRepo "http://snapshots.repository.codehaus.org" 
     39        //mavenRepo "http://repository.codehaus.org" 
     40        //mavenRepo "http://download.java.net/maven/2/" 
     41        //mavenRepo "http://repository.jboss.com/maven2/" 
     42    } 
     43    dependencies { 
     44        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. 
     45 
     46        // runtime 'mysql:mysql-connector-java:5.1.5' 
     47    } 
     48} 
     49 
     50//grails.plugin.location.'aaaa' = '/home/tjeerd/NetBeansProjects/nmcdsp/aaaa' 
  • trunk/grails-app/conf/Config.groovy

    r931 r936  
    156156grails.views.javascript.library="jquery" 
    157157 
     158// Needed for the Spring Security Core plugin: 
     159grails.plugins.springsecurity.userLookup.userDomainClassName = 'org.nmcdsp.plugins.aaaa.SecUser' 
     160grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'org.nmcdsp.plugins.aaaa.SecUserSecRole' 
     161grails.plugins.springsecurity.authority.className = 'org.nmcdsp.plugins.aaaa.SecRole' 
     162 
    158163// The OAuth consumer key and secret variables are currently replaced by Jeroen's Continuous Integration script. 
    159164// These keys were requested by me (Tjeerd) from myExperiment. 
  • trunk/grails-app/controllers/RestController.groovy

    r935 r936  
    1818import dbnp.studycapturing.Study 
    1919import dbnp.studycapturing.Assay 
    20 import dbnp.user.User 
     20import org.nmcdsp.plugins.aaaa.SecUser 
    2121import grails.converters.* 
    2222import nl.metabolomicscentre.dsp.http.BasicAuthentication 
     
    3434        def beforeInterceptor = [action:this.&auth,except:["isUser"]] 
    3535        def credentials 
    36         def requestUser = User.findByName( "user" ) 
     36        def requestUser = SecUser.findByName( "user" ) 
    3737 
    3838        /** 
     
    6666                boolean isUser 
    6767                credentials = BasicAuthentication.credentialsFromRequest(request) 
    68                 def reqUser = authService.authUser(credentials.u,credentials.p) 
     68                //def reqUser = authService.authUser(credentials.u,credentials.p) 
    6969                if (reqUser) { 
    7070                        isUser = true 
     
    317317        */ 
    318318 
    319         def getAuthorizationLevel = { 
     319        /*def getAuthorizationLevel = { 
    320320 
    321321                isReader = false  
     
    350350                if( study.owner.contains(user) )   isOwner  = true 
    351351 
    352                 */ 
     352                 
    353353 
    354354                render ['isReader':isOwner, 'isEditor':isEditor, 'isOwner':isOwner] as JSON 
    355     } 
     355    }*/ 
    356356 
    357357 
  • trunk/grails-app/domain/dbnp/importer/MappingColumn.groovy

    r784 r936  
    2727    } 
    2828 
     29    static mapping = { 
     30            tablePerHierarchy false 
     31    } 
     32 
    2933    String toString() { 
    3034        return "Name:" + name + "/TemplateFieldType:" + templatefieldtype + "/Entity:" + entity + "/Property:" + property + "/Index:" + index + "/Value:" + value + "/Identifier:" + identifier 
  • trunk/grails-app/domain/dbnp/studycapturing/Identity.groovy

    r798 r936  
    11package dbnp.studycapturing 
     2 
     3import org.nmcdsp.plugins.aaaa.Entity 
    24 
    35/** 
     
    4143 * $Date$ 
    4244 */ 
    43 abstract class Identity implements Serializable { 
     45abstract class Identity extends Entity implements Serializable { 
    4446        // keep an internal identifier for use in dynamic forms 
    4547        private int identifier = 0 
  • trunk/grails-app/domain/dbnp/studycapturing/Study.groovy

    r934 r936  
    11package dbnp.studycapturing 
    22 
    3 import dbnp.user.User 
     3import org.nmcdsp.plugins.aaaa.SecUser 
    44 
    55/** 
     
    1616    } 
    1717 
    18         User owner   // The owner of the study. A new study is automatically owned by its creator. 
     18        SecUser owner   // The owner of the study. A new study is automatically owned by its creator. 
    1919        String title        // The title of the study 
    2020        String code             // currently used as the external study ID, e.g. to reference a study in a SAM module 
     
    2222        Date lastUpdated 
    2323        Date startDate 
    24     List subjects 
     24        List subjects 
    2525        List events 
    2626        List samplingEvents 
     
    2929        List assays 
    3030 
    31         static hasMany = [ 
    32                 editors: User,   // Users with read/write access to the study 
    33                 readers: User,   // Users with only read access to the study 
     31        static hasMany = [               
    3432                subjects: Subject, 
    3533                samplingEvents: SamplingEvent, 
     
    5250                // Workaround for bug http://jira.codehaus.org/browse/GRAILS-6754 
    5351                templateTextFields type: 'text' 
     52                owner column:"studyowner" 
     53                title column:"studytitle" 
     54                code column:"studycode" 
     55                subjects column:"studysubjects" 
     56                events column:"studyevents" 
     57                samplingEvents column:"studysamplingevents" 
     58                eventGroups column:"studyeventgroups" 
     59                samples column:"studysamples" 
     60                assays column:"studyassays" 
    5461 
    5562        } 
  • trunk/grails-app/domain/dbnp/studycapturing/Subject.groovy

    r874 r936  
    3131        } 
    3232 
     33        static mapping = { 
     34                name column:"subjectname" 
     35        } 
     36 
    3337 
    3438        /** 
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateEntity.groovy

    r902 r936  
    33import dbnp.data.Term 
    44import org.springframework.validation.FieldError 
     5import org.nmcdsp.plugins.aaaa.Entity 
    56 
    67/** 
     
    4344        static hasMany = [ 
    4445                templateStringFields    : String, 
    45                 templateTextFields              : String, 
     46                templateTextFields      : String, 
    4647                templateStringListFields: TemplateFieldListItem, 
    4748                templateIntegerFields   : int, 
    48                 templateFloatFields             : float, 
     49                templateFloatFields     : float, 
    4950                templateDoubleFields    : double, 
    50                 templateDateFields              : Date, 
    51                 templateTermFields              : Term, 
     51                templateDateFields      : Date, 
     52                templateTermFields      : Term, 
    5253                templateRelTimeFields   : long, 
    53                 templateFileFields              : String, 
     54                templateFileFields      : String, 
    5455                templateBooleanFields   : boolean, 
    5556                templateTemplateFields  : Template, 
    5657                templateModuleFields    : AssayModule, 
    57                 templateLongFields              : long, 
    58                 systemFields                    : TemplateField 
     58                templateLongFields      : long, 
     59                systemFields            : TemplateField 
    5960        ] 
    6061 
     
    7071                // Make sure that the text fields are really stored as TEXT, so that those Strings can have an arbitrary length. 
    7172                templateTextFields type: 'text' 
     73 
     74                template column:"templateentitytemplate" 
    7275        } 
    7376 
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateField.groovy

    r803 r936  
    7272                // Make sure the comments can be Strings of arbitrary length 
    7373                comment type: 'text' 
     74                name column:"templatefieldname" 
     75                type column:"templatefieldtype" 
     76                entity column:"templatefieldentity" 
     77                unit column:"templatefieldunit" 
     78                comment column:"templatefieldcomment"                 
    7479        } 
    7580 
  • trunk/grails-app/domain/dbnp/studycapturing/TemplateFieldListItem.groovy

    r784 r936  
    2020        } 
    2121 
     22        static mapping = { 
     23                name column:"templatefieldlistitemname" 
     24        } 
     25 
    2226        String toString() { 
    2327                return name; 
  • trunk/grails-app/domain/dbnp/studycapturing/Template.groovy

    r896 r936  
    11package dbnp.studycapturing 
    22 
    3 import dbnp.user.User 
     3import org.nmcdsp.plugins.aaaa.SecUser 
     4import org.nmcdsp.plugins.aaaa.Entity 
    45 
    56/** 
     
    3132 
    3233        /** The owner of the template. If the owner is not defined, it is a shared/public template */ 
    33         User owner 
     34        SecUser owner 
    3435 
    3536        /** The template fields which are the members of this template. This is a List to preserve the field order */ 
     
    3738 
    3839        static hasMany = [fields: TemplateField] 
     40 
     41        static mapping = { 
     42                name column:"templatename" 
     43                description column:"templatedescription" 
     44                entity column:"templateentity" 
     45                owner column:"templateowner" 
     46                fields column:"templatefields" 
     47        } 
    3948 
    4049        // constraints 
  • trunk/grails-app/views/common/_login_panel.gsp

    r611 r936  
    44                <div class="content clearfix"> 
    55                        <div class="left"> 
    6                                 <h1>Welcome to the Generic Study Capture Framework</h1> 
     6                                <h1>Welcome to the Metabolomics Data Support Platform</h1> 
    77                                <h2>version <b>${meta(name: 'app.version')}</b></h2> 
    88                                <p class="grey">Please use the forms on the right to either log in if you already have an account, or sign up if you think this data support platform suits your needs.</p> 
     
    1111                        </div> 
    1212                        <div class="left"> 
    13                                 <g:form url="[action:'signin',controller:'auth']" class="clearfix"> 
    14                                         <input type="hidden" name="targetUri" value="${targetUri}" /> 
     13                                <g:form controller="." action="j_spring_security_check" method='POST' class="clearfix"> 
    1514                                        <h1>Member Login</h1> 
    1615                                        <label class="grey" for="username">Username:</label> 
    17                                         <input class="field" type="text" name="username" id="username" value="${username}" size="23" /> 
     16                                        <input class="field" type="text" name="j_username" id="username" value="${username}" size="23" /> 
    1817                                        <label class="grey" for="password">Password:</label> 
    19                                         <input class="field" type="password" name="password" id="password" size="23" /> 
    20                                         <label><g:checkBox name="rememberMe" value="${rememberMe}" /> &nbsp;Remember me</label> 
     18                                        <input class="field" type="password" name="j_password" id="password" size="23" /> 
     19                                        <label><input type='checkbox' class='chk' name='${rememberMeParameter}' id='remember_me' 
     20                                        <g:if test='${hasCookie}'>checked='checked'</g:if> /></label> 
    2121                <div class="clear"></div> 
    2222                                        <input type="submit" name="submit" value="Login" class="bt_login" /> 
     
    2424                                </g:form> 
    2525                        </div> 
    26                         <div class="left right">                         
     26                        <div class="left right"> 
    2727                                <g:form url="[action:'signUp',controller:'auth']" class="clearfix"> 
    2828                                        <input type="hidden" name="targetUri" value="${targetUri}" /> 
    29                                         <h1>Not a member yet? Sign Up!</h1>                              
     29                                        <h1>Not a member yet? Sign Up!</h1> 
    3030                                        <label class="grey" for="signup">Username:</label> 
    3131                                        <input class="field" type="text" name="signup" id="signup" value="${username}" size="23" /> 
     
    4040        <div class="tab"> 
    4141                <ul class="login"> 
    42                         <li class="left">&nbsp;</li>     
    43                         <li>Hello <n:isLoggedIn><n:principal/></n:isLoggedIn><n:isNotLoggedIn>Guest</n:isNotLoggedIn>!</li> 
     42                        <li class="left">&nbsp;</li> 
     43                        <% /* <li>Hello <authentication:isLoggedIn><authentication:loggedInUsername/></authentication:isLoggedIn> 
     44                        <authentication:isNotLoggedIn>Guest</authentication:isNotLoggedIn>!</li> 
    4445                        <li class="sep">|</li> 
    4546                        <li id="toggle"> 
    46                                 <n:isLoggedIn><g:link controller="auth" action="signout">sign out</g:link></n:isLoggedIn> 
    47                                 <n:isNotLoggedIn> 
     47                        <authentication:isLoggedIn><g:link controller="logout" action="index">sign out</g:link></authentication:isLoggedIn> 
     48                                <authentication:isNotLoggedIn> 
    4849                                 <a id="open" class="open" href="#">Log In | Register</a> 
    49                                  <a id="close" style="display: none;" class="close" href="#">Close Panel</a>                     
    50                                 </n:isNotLoggedIn> 
    51                         </li> 
     50                                 <a id="close" style="display: none;" class="close" href="#">Close Panel</a> 
     51                                </authentication:isNotLoggedIn> 
     52                        </li>*/ %> 
    5253            <li class="right">&nbsp;</li> 
    53                 </ul>  
    54         </div>  
    55   </div>  
     54                </ul> 
     55        </div> 
     56  </div> 
    5657<!-- /LOGIN PANEL --> 
  • trunk/grails-app/views/study/show.gsp

    r899 r936  
    287287                          </tr> 
    288288            <tr> 
    289               <td>Readers</td> 
     289              <td>Members <permissions:manage entity="${studyList[0]}">manage</permissions:manage></td> 
    290290              <g:each in="${studyList}" var="studyInstance"> 
    291291                <td> 
    292                   <g:if test="${studyInstance.readers?.size()==0}"> 
     292                  <g:if test="${studyInstance.getAllMemberUsers()==0}"> 
    293293                    - 
    294294                  </g:if> 
    295295                  <g:else> 
    296                     <g:each in="${studyInstance.readers}" var="r" status="i"> 
     296                    <g:each in="${studyInstance.getAllMemberUsers()}" var="memberuser" status="i"> 
    297297                      <g:if test="${i > 0}">, </g:if> 
    298                       <g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link> 
     298                      <g:link controller="user" action="show" id="${memberuser.id}">${memberuser?.encodeAsHTML()}</g:link> 
    299299                    </g:each> 
    300300                  </g:else> 
     
    302302              </g:each> 
    303303            </tr> 
    304             <tr> 
    305               <td>Editors</td> 
    306               <g:each in="${studyList}" var="studyInstance"> 
    307                 <td> 
    308                   <g:if test="${studyInstance.editors?.size()==0}"> 
    309                     - 
    310                   </g:if> 
    311                   <g:else> 
    312                     <g:each in="${studyInstance.editors}" var="r" status="i"> 
    313                       <g:if test="${i > 0}">, </g:if> 
    314                       <g:link controller="user" action="show" id="${r.id}">${r?.encodeAsHTML()}</g:link> 
    315                     </g:each> 
    316                   </g:else> 
    317                 </td> 
    318               </g:each> 
    319             </tr> 
    320  
    321304          </table> 
    322305        </div>