Changeset 53 for trunk


Ignore:
Timestamp:
Apr 20, 2011, 4:53:22 PM (8 years ago)
Author:
robert@…
Message:

Implemented export possibility and bugfixes

Location:
trunk
Files:
6 added
7 edited

Legend:

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

    r52 r53  
    6666                                                        session.user = User.findByIdentifierAndUsername( user.id, user.username );
    6767                                                        if( !session.user) {
    68                                                                 session.user = new User( identifier: user.id, username: user.username ).save( flush: true );
     68                                                                session.user = new User( identifier: user.id, username: user.username, isAdministrator: user.isAdministrator ).save( flush: true );
     69                                                        } else if( session.user.isAdministrator != user.isAdministrator ) {     // If administrator status has changed, update the user
     70                                                                session.user.isAdministrator = user.isAdministrator;
     71                                                                session.user.save();
    6972                                                        }
    7073                                                } else {
     
    113116                                        // try to identify the user with the sessionToken, since the user has logged in before                                                                 
    114117                                        try {
    115                                                 def user = [:]
    116                                                
    117118                                                // First check if the user is authenticated. If he isn't, he should provide credentials at GSCF
    118119                                                def authentication = JSON.parse("${ConfigurationHolder.config.gscf.baseURL}/rest/isUser?consumer=${ConfigurationHolder.config.massSequencing.consumerID}&token=${session.sessionToken}".toURL().text)
     
    125126                                               
    126127                                                // Now find the user data
    127                                                 JSON.parse("${ConfigurationHolder.config.gscf.baseURL}/rest/getUser?consumer=${ConfigurationHolder.config.massSequencing.consumerID}&token=${session.sessionToken}".toURL().text).each { userProperty ->
    128                                                         user["${userProperty.key}"] = "${userProperty.value}"
    129                                                 }
    130                                                
     128                                                def user = gscfService.getUser( session.sessionToken );
     129                                               
     130                                                if( !user ) {
     131                                                        throw new Exception( "User should be authenticated with GSCF, according to the isUser call, but is not when asked for details." );
     132                                                }
     133
    131134                                                // Locate user in database or create a new user
    132135                                                session.user = User.findByIdentifierAndUsername(user.id, user.username)
    133136                                                if (!session.user){ // when not found, create a new user
    134                                                         session.user = new User(identifier: user.id, username: user.username).save(flush: true)
     137                                                        session.user = new User(identifier: user.id, username: user.username, isAdministrator: user.isAdministrator).save(flush: true)
     138                                                } else if( session.user.isAdministrator != user.isAdministrator ) {     // If administrator status has changed, update the user
     139                                                        session.user.isAdministrator = user.isAdministrator;
     140                                                        session.user.save();
    135141                                                }
    136142                                               
  • trunk/grails-app/domain/nl/tno/massSequencing/Study.groovy

    r52 r53  
     1import java.io.StringWriter;
     2
    13package nl.tno.massSequencing
    24
  • trunk/grails-app/domain/nl/tno/massSequencing/auth/User.groovy

    r28 r53  
    1111    String identifier // ID of GSCF user
    1212    String username   // Username of GSCF user
     13        Boolean isAdministrator
    1314
    1415        static hasMany = [ auth: Auth ]
  • trunk/grails-app/services/nl/tno/massSequencing/SampleExcelService.groovy

    r52 r53  
    397397       
    398398        protected String prepare( def object, def fieldName ) {
    399                 if( object.isNull( fieldName ) )
     399                if( !object || object.isNull( fieldName ) )
    400400                        return "";
    401401               
  • trunk/grails-app/services/nl/tno/massSequencing/files/FileService.groovy

    r52 r53  
    297297         * @return
    298298         */
    299         private File absolutePath( String pathname ) {
     299        public File absolutePath( String pathname ) {
    300300                if( pathname == null)
    301                 return null
     301                        return null
    302302
    303303                // Check if this is an absolute path
  • trunk/grails-app/services/nl/tno/massSequencing/integration/GscfService.groovy

    r52 r53  
    8080         */
    8181        public Map getUser(String sessionToken) throws Exception {
    82                 def user = [:]
     82                // Add isAdministrator: false as default, in order to be able to handle old versions of GSCF
     83                // that don't provide this information
     84                def user = [ isAdministrator: false ]
    8385                try {
    8486                        this.callGSCF(sessionToken, "getUser").each {
     
    8991                        e.printStackTrace();
    9092                        return null
    91                         throw new Exception( "Retrieving user details from GSCF failed", e );
     93                        //throw new Exception( "Retrieving user details from GSCF failed", e );
    9294                }
    9395        }
  • trunk/grails-app/views/common/_topnav.gsp

    r52 r53  
    1616      </ul>
    1717    </li>
    18 
     18        <li>
     19      <a href="#" onClick="return false;">Export</a>
     20      <ul class="subnav">
     21                <li><g:link controller="export" action="zip">All sequencing data</g:link></li>
     22                <li><g:link controller="export" action="xml">Only XML</g:link></li>
     23      </ul>
     24    </li>
    1925        <li class="user_info">
    2026                Hello ${session?.user?.username}&nbsp;&nbsp;|&nbsp;
Note: See TracChangeset for help on using the changeset viewer.