root/trunk/grails-app/conf/BaseFilters.groovy @ 1626

Revision 1626, 2.0 KB (checked in by work@…, 3 years ago)

- added initial support of a return URI; not working properly though...

  • Property svn:keywords set to Rev Author Date
Line 
1/**
2 * Base Filters
3 * @Author Jeroen Wesbeek
4 * @Since 20091026
5 * @see main.gsp
6 * @see http://grails.org/Filters
7 * @Description
8 *
9 * These filters contain generic logic for -every- page request.
10 *
11 * Revision information:
12 * $Rev$
13 * $Author$
14 * $Date$
15 */
16class BaseFilters {
17        def authenticationService
18
19        // define filters
20        def filters = {
21                defineStyle(controller: '*', action: '*') {
22                        // before every execution
23                        before = {
24                                // set the default style in the session
25                                if (!session.style) {
26                                        session.style = 'default_style'
27                                }
28
29                                // set session lifetime to 1 week
30                                session.setMaxInactiveInterval(604800)
31                        }
32                }
33
34                // we need secUser in GDT::Template*, but we do not want GDT
35                // to rely on authentication. Therefore we handle it through
36                // a filter and store the loggedInUser in the session instead
37                templateEditor(controller: 'templateEditor', action: '*') {
38                        // before every execution
39                        before = {
40                                // set the secUser in the session
41                                def secUser = authenticationService.getLoggedInUser()
42                                if (secUser) {
43                                        session.loggedInUser = secUser
44                                } else {
45                                        // remove session variable
46                                        session.removeAttribute('loggedInUser')
47
48                                        def returnURI = request.requestURL.toString().replace(".dispatch","").replace("/grails/","/") + '?' + request.queryString
49
50                                        // and redirect to login page
51                                        redirect(controller: 'login', action: 'auth', params: [returnURI: returnURI, referer: request.getHeader('referer')] )
52                                }
53                        }
54                }
55               
56                profiler(controller: '*', action: '*') {
57                        before = {
58                                request._timeBeforeRequest = System.currentTimeMillis()
59                        }
60
61                        after = {
62                                request._timeAfterRequest = System.currentTimeMillis()
63                        }
64
65                        afterView = {
66                                def actionDuration = request._timeAfterRequest ? request._timeAfterRequest - request._timeBeforeRequest : 0
67                                def viewDuration = request._timeAfterRequest ? System.currentTimeMillis() - request._timeAfterRequest : 0
68                                log.info("Timer: ${controllerName}(${actionDuration}ms)::${actionName}(${viewDuration}ms)")
69                        }
70                }
71
72        }
73}
74
Note: See TracBrowser for help on using the browser.