source: trunk/grails-app/conf/BaseFilters.groovy @ 1615

Last change on this file since 1615 was 1615, checked in by work@…, 11 years ago
  • fixed cloning of templates (gscf issue #345)
  • Property svn:keywords set to Rev Author Date
File size: 1.8 KB
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: 1615 $
13 * $Author: work@osx.eu $
14 * $Date: 2011-03-10 10:33:08 +0000 (do, 10 mrt 2011) $
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                                        // and redirect to login page
49                                        redirect(controller: 'login', action: 'auth')
50                                }
51                        }
52                }
53               
54                profiler(controller: '*', action: '*') {
55                        before = {
56                                request._timeBeforeRequest = System.currentTimeMillis()
57                        }
58
59                        after = {
60                                request._timeAfterRequest = System.currentTimeMillis()
61                        }
62
63                        afterView = {
64                                def actionDuration = request._timeAfterRequest ? request._timeAfterRequest - request._timeBeforeRequest : 0
65                                def viewDuration = request._timeAfterRequest ? System.currentTimeMillis() - request._timeAfterRequest : 0
66                                log.info("Timer: ${controllerName}(${actionDuration}ms)::${actionName}(${viewDuration}ms)")
67                        }
68                }
69
70        }
71}
72
Note: See TracBrowser for help on using the repository browser.