source: trunk/grails-app/controllers/UnitOfMeasureDetailedController.groovy @ 628

Last change on this file since 628 was 628, checked in by gav, 14 years ago

Full authorisation review.
Add manager role to BaseController.
Remove inventory manager role from CostCode controller as per ticket #77.
Remove inventory manager role from InventoryGroup controller CUD actions.
Add all manager roles to Address and Contact controllers.
Add production and task manager roles to ProductionReference controller.

File size: 4.0 KB
Line 
1import org.codehaus.groovy.grails.plugins.springsecurity.Secured
2
3@Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_InventoryManager'])
4class UnitOfMeasureDetailedController extends BaseController {
5   
6    def index = { redirect(action:list,params:params) }
7
8    // the delete, save and update actions only accept POST requests
9    static allowedMethods = [delete:'POST', save:'POST', update:'POST']
10
11    def list = {
12        params.max = Math.min( params.max ? params.max.toInteger() : 10,  100)
13        [ unitOfMeasureInstanceList: UnitOfMeasure.list( params ), unitOfMeasureInstanceTotal: UnitOfMeasure.count() ]
14    }
15
16    def show = {
17
18        // In the case of an actionSubmit button, rewrite action name from 'index'.
19        if(params._action_Show)
20            params.action='show'
21
22        def unitOfMeasureInstance = UnitOfMeasure.get( params.id )
23
24        if(!unitOfMeasureInstance) {
25            flash.message = "UnitOfMeasure not found with id ${params.id}"
26            redirect(action:list)
27        }
28        else { return [ unitOfMeasureInstance : unitOfMeasureInstance ] }
29    }
30
31    def delete = {
32        def unitOfMeasureInstance = UnitOfMeasure.get( params.id )
33        if(unitOfMeasureInstance) {
34            try {
35                unitOfMeasureInstance.delete(flush:true)
36                flash.message = "UnitOfMeasure ${params.id} deleted"
37                redirect(action:list)
38            }
39            catch(org.springframework.dao.DataIntegrityViolationException e) {
40                flash.message = "UnitOfMeasure ${params.id} could not be deleted"
41                redirect(action:show,id:params.id)
42            }
43        }
44        else {
45            flash.message = "UnitOfMeasure not found with id ${params.id}"
46            redirect(action:list)
47        }
48    }
49
50    def edit = {
51
52        // In the case of an actionSubmit button, rewrite action name from 'index'.
53        if(params._action_Edit)
54            params.action='edit'
55
56        def unitOfMeasureInstance = UnitOfMeasure.get( params.id )
57
58        if(!unitOfMeasureInstance) {
59            flash.message = "UnitOfMeasure not found with id ${params.id}"
60            redirect(action:list)
61        }
62        else {
63            return [ unitOfMeasureInstance : unitOfMeasureInstance ]
64        }
65    }
66
67    def update = {
68        def unitOfMeasureInstance = UnitOfMeasure.get( params.id )
69        if(unitOfMeasureInstance) {
70            if(params.version) {
71                def version = params.version.toLong()
72                if(unitOfMeasureInstance.version > version) {
73                   
74                    unitOfMeasureInstance.errors.rejectValue("version", "default.optimistic.locking.failure")
75                    render(view:'edit',model:[unitOfMeasureInstance:unitOfMeasureInstance])
76                    return
77                }
78            }
79            unitOfMeasureInstance.properties = params
80            if(!unitOfMeasureInstance.hasErrors() && unitOfMeasureInstance.save(flush: true)) {
81                flash.message = "UnitOfMeasure ${params.id} updated"
82                redirect(action:show,id:unitOfMeasureInstance.id)
83            }
84            else {
85                render(view:'edit',model:[unitOfMeasureInstance:unitOfMeasureInstance])
86            }
87        }
88        else {
89            flash.message = "UnitOfMeasure not found with id ${params.id}"
90            redirect(action:list)
91        }
92    }
93
94    def create = {
95        def unitOfMeasureInstance = new UnitOfMeasure()
96        unitOfMeasureInstance.properties = params
97        return ['unitOfMeasureInstance':unitOfMeasureInstance]
98    }
99
100    def save = {
101        def unitOfMeasureInstance = new UnitOfMeasure(params)
102        if(!unitOfMeasureInstance.hasErrors() && unitOfMeasureInstance.save(flush: true)) {
103            flash.message = "UnitOfMeasure ${unitOfMeasureInstance.id} created"
104            redirect(action:show,id:unitOfMeasureInstance.id)
105        }
106        else {
107            render(view:'create',model:[unitOfMeasureInstance:unitOfMeasureInstance])
108        }
109    }
110}
Note: See TracBrowser for help on using the repository browser.