Ignore:
Timestamp:
Feb 9, 2011, 9:04:29 AM (11 years ago)
Author:
robert@…
Message:

Implemented basic exporting functionality

File:
1 edited

Legend:

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

    r9 r12  
    1616import grails.converters.*
    1717import javax.servlet.http.HttpServletResponse
     18
     19import org.apache.catalina.connector.Response;
    1820import org.codehaus.groovy.grails.commons.ConfigurationHolder
    1921
    2022import nl.tno.metagenomics.auth.User;
     23import nl.tno.metagenomics.integration.*;
    2124 
    2225class BaseFilters {
     
    121124                                                        session.user = new User(identifier: user.id, username: user.username).save(flush: true)
    122125                                                }
     126                                               
     127                                                return true;
    123128                                        } catch(Exception e) {
    124129                                                log.error("Unable to fetch user from GSCF", e)
     
    134139                        }
    135140                }
     141                restSynchronization(controller:'rest', action:'*') {
     142                        before = {
     143                                // Synchronize studies normally, but never issue a redirect
     144                                synchronizationService.sessionToken = session.sessionToken
     145                                synchronizationService.user = session.user
    136146               
    137                 fullSynchronization(controller:'*', action:'*') {
    138                         before = {
    139                                 // Never perform full synchronization on rest call when the synchronize controller is used
     147                                try {
     148                                        synchronizationService.synchronizeStudies()
     149                                } catch( NotAuthenticatedException e ) {
     150                                        // Something went wrong in authentication. Redirect the user to GSCF to authenticate again
     151                                        log.info "User is not authenticated during synchronizatino. Returning 401 status"
     152                                        response.setStatus( Response.SC_UNAUTHORIZED, "User is not authorized" )
     153                                        return false;
     154                                } catch( Exception e ) {
     155                                        // Synchronization fails. Log error and continue; don't bother the user with it
     156                                        log.error e.getMessage()
     157                                }
     158                                return true;
     159                        }
     160                }
     161                synchronization(controller:'*', action:'*') {
     162                        before = {
     163                                // Never perform full synchronization on rest call or when the synchronize controller is used
    140164                                if( controllerName == "rest" || controllerName == "synchronize" || controllerName == "dbUtil" ) {
    141165                                        return true;
     
    149173                                        redirect( url: synchronizationService.urlForFullSynchronization( params ) );
    150174                                        return false
     175                                } else {
     176                                        // Synchronize studies normally
     177                                        synchronizationService.sessionToken = session.sessionToken
     178                                        synchronizationService.user = session.user
     179                       
     180                                        try {
     181                                                synchronizationService.synchronizeStudies()
     182                                        } catch( NotAuthenticatedException e ) {
     183                                                // Something went wrong in authentication. Redirect the user to GSCF to authenticate again
     184                                                log.info "User is not authenticated during synchronizatino. Redirecting to GSCF."
     185                                                redirect( url: gscfService.urlAuthRemote(params, session.sessionToken) )
     186                                        } catch( Exception e ) {
     187                                                // Synchronization fails. Log error and continue; don't bother the user with it
     188                                                log.error e.getMessage()
     189                                        }
    151190                                }
    152191                               
Note: See TracChangeset for help on using the changeset viewer.