source: trunk/grails-app/controllers/AppCoreController.groovy @ 227

Last change on this file since 227 was 216, checked in by gav, 15 years ago

Replace personService.currentUser() with the more groovy personService.getCurrentUser() so that personService.currentUser can be called.

File size: 3.7 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class AppCoreController extends BaseController {
4
5    def personService
6    def createDataService
7
8    def index = { redirect(action:start,params:params) }
9
10    // the delete, save and update actions only accept POST requests
11    //def allowedMethods = [delete:'POST', save:'POST', update:'POST']
12
13    /**
14    * This is where we arrive after login.
15    *  Attach the welcome flash message and redirect to where ever we want the user to start.
16    * e.g. redirect(controller:"taskDetailed", action:"search")
17    */
18    def welcome = {
19        def personInstance = personService.currentUser
20        flash.message = "Welcome, ${personInstance.firstName} ${personInstance.lastName}."
21
22        def sess = getSession()
23        sess.setMaxInactiveInterval(personInstance.sessionTimeout)
24        redirect(action:start)
25    }
26
27    def start = {
28    }
29
30    def changeSessionTimeout = {
31        if (request.method == 'GET') {
32            def personInstance = personService.currentUser
33            return [ personInstance : personInstance ]       
34        }
35        if (request.method == 'POST') {
36            def personInstance = personService.currentUser
37                personInstance.properties = params
38                if (!personInstance.hasErrors() && personInstance.save(flush: true)) {
39                    def sess = getSession()
40                    sess.setMaxInactiveInterval(personInstance.sessionTimeout)
41                    flash.message = "Session timeout changed."
42                    redirect(action:start)
43                }
44                else {
45                    render(view:'changeSessionTimeout',model:[personInstance:personInstance])
46                }
47        }
48    }
49
50    def changePassword = {
51        //def principal = authenticateService.principal()
52        //println principal.getAuthorities()
53
54        if (request.method == 'GET') {
55            def personInstance = personService.currentUser
56            return [ personInstance : personInstance ]       
57        }
58
59        if (request.method == 'POST') {
60            def personInstance = personService.currentUser
61
62            if(params.confirmPass == params.pass) {
63                personInstance.pass = params.pass
64                personInstance.password = authenticateService.encodePassword(personInstance.pass)
65
66                if (!personInstance.hasErrors() && personInstance.save(flush: true)) {
67                    //userCache.removeUserFromCache(personInstance.loginName)
68                    flash.message = "Password changed successfully."
69                    redirect(action:start)
70                }
71                else {
72                    render(view:'changePassword',model:[personInstance:personInstance])
73                }
74            }
75            else {
76                personInstance.errors.reject('person.pass.doesNotMatch',            // Error code, see grails-app/i18n/message.properties
77                                                                ['pass', 'class Person'].toArray(),      // Groovy ListArray cast to Object[]
78                                                                 '[NothingUseMessageProperites]')  // Default mapping string.
79                render(view:'changePassword',model:[personInstance:personInstance])
80            }
81
82        }
83    }
84
85    @Secured(['ROLE_Manager','ROLE_AppAdmin'])
86    def manager = {
87    }
88
89    @Secured(['ROLE_AppAdmin'])
90    def appAdmin = {
91    }
92
93    @Secured(['ROLE_AppAdmin'])
94    def createBaseData = {
95        createDataService.createBaseData()
96        redirect(action:appAdmin)
97    }
98
99    @Secured(['ROLE_AppAdmin'])
100    def createDemoData = {
101        createDataService.createDemoData()
102        redirect(action:appAdmin)
103    }
104
105}
Note: See TracBrowser for help on using the repository browser.