All pastes #930046 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-03-06 06:46 UTC
rendered paste body
class MyController {

    def beforeInterceptor = [action: this.&checkUser, except: ['index', 'show', 'showCake']]

    // the delete, save and update actions only accept POST requests
    def allowedMethods = [/*delete:'POST', */add:'POST',update:'POST',edit:'GET']

    def checkUser() {
        println "actionUri: ${actionUri} params ${params}"
        if (!session.user) {
            // i.e. user not logged in
            session.originalUri = actionUri
            session.originalUriParams = params
            redirect(controller: 'user', action: 'login')
            return false
        }
    }



class UserController {
    def securityService

    def login = {}

    def doLogin = {
//        def user = User.findWhere(login: params['login'],
//                password: params['password'])
        def userId = securityService.authenticate(params['login'], params['password'])
        def originalUri = session.originalUri
        def originalUriParams = session.originalUriParams
        println "*** doLogin ${userId} to ${originalUri} with ${originalUriParams}"

        if (userId) {
            session.user = userId
            session.originalUri = null
            session.originalUriParams = null
            if (originalUri) {
                if (originalUriParams.id) {
-->                 redirect(uri: originalUri, id:originalUriParams.id, params:originalUriParams)                    
                } else {
                    redirect(uri: originalUri, params:originalUriParams)
                }
            }
            else
              redirect(controller: 'cake', action: 'list')
        }
        else
            redirect(controller: 'user', action: 'login')
    }