source: trunk/grails-app/controllers/AuthorityController.groovy @ 346

Last change on this file since 346 was 178, checked in by gav, 15 years ago

Resolve ticket #12 again.
Turn query cache on again since this did not resolve the problem.
Implement fix as per http://jira.codehaus.org/browse/GRAILS-5111, add flush:true to save.
Adjust templates to include above and remove home url.
Re-generate all non detailed views and controllers.
Manually add flush:true and remove home url to detailed views and controllers.

File size: 2.9 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3class AuthorityController extends BaseAppAdminController {
4
5    // the delete, save and update actions only accept POST requests
6    static Map allowedMethods = [delete: 'POST', save: 'POST', update: 'POST']
7
8    def authenticateService
9
10    def index = {
11        redirect action: list, params: params
12    }
13
14    /**
15    * Display the list authority page.
16    */
17    def list = {
18        if (!params.max) {
19            params.max = 10
20        }
21        [authorityList: Authority.list(params)]
22    }
23
24    /**
25    * Display the show authority page.
26    */
27    def show = {
28        def authority = Authority.get(params.id)
29        if (!authority) {
30            flash.message = "Authority not found with id $params.id"
31            redirect action: list
32            return
33        }
34
35        [authority: authority]
36    }
37
38    /**
39    * Delete an authority.
40    */
41    def delete = {
42        def authority = Authority.get(params.id)
43        if (!authority) {
44            flash.message = "Authority not found with id $params.id"
45            redirect action: list
46            return
47        }
48
49        authenticateService.deleteRole(authority)
50
51        flash.message = "Authority $params.id deleted."
52        redirect action: list
53    }
54
55    /**
56    * Display the edit authority page.
57    */
58    def edit = {
59        def authority = Authority.get(params.id)
60        if (!authority) {
61            flash.message = "Authority not found with id $params.id"
62            redirect action: list
63            return
64        }
65
66        [authority: authority]
67    }
68
69    /**
70    * Authority update action.
71    */
72    def update = {
73
74        def authority = Authority.get(params.id)
75        if (!authority) {
76            flash.message = "Authority not found with id $params.id"
77            redirect action: edit, id: params.id
78            return
79        }
80
81        long version = params.version.toLong()
82        if (authority.version > version) {
83            authority.errors.rejectValue 'version', 'authority.optimistic.locking.failure',
84                'Another user has updated this Authority while you were editing.'
85            render view: 'edit', model: [authority: authority]
86            return
87        }
88
89        if (authenticateService.updateRole(authority, params)) {
90            authenticateService.clearCachedRequestmaps()
91            redirect action: show, id: authority.id
92        }
93        else {
94            render view: 'edit', model: [authority: authority]
95        }
96    }
97
98    /**
99    * Display the create new authority page.
100    */
101    def create = {
102        [authority: new Authority()]
103    }
104
105    /**
106    * Save a new authority.
107    */
108    def save = {
109
110        def authority = new Authority()
111        authority.properties = params
112        if (authority.save(flush: true)) {
113            redirect action: show, id: authority.id
114        }
115        else {
116            render view: 'create', model: [authority: authority]
117        }
118    }
119}
Note: See TracBrowser for help on using the repository browser.