Changeset 936


Ignore:
Timestamp:
Oct 11, 2010, 10:23:13 PM (6 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 deleted
16 edited

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/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/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/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>
Note: See TracChangeset for help on using the changeset viewer.