1 from pkg_resources
import resource_filename
3 from pylons
import c
, session
5 from spline
.lib
.plugin
import PluginBase
6 from spline
.lib
.plugin
import PluginBase
, PluginLink
, Priority
7 import spline
.model
as model
8 import spline
.model
.meta
as meta
10 import spline
.plugins
.users
.controllers
.accounts
11 import spline
.plugins
.users
.controllers
.users
12 import spline
.plugins
.users
.model
14 def add_routes_hook(map, *args
, **kwargs
):
15 """Hook to inject some of our behavior into the routes configuration."""
17 map.connect('/accounts/login', controller
='accounts', action
='login')
18 map.connect('/accounts/login_begin', controller
='accounts', action
='login_begin')
19 map.connect('/accounts/login_finish', controller
='accounts', action
='login_finish')
20 map.connect('/accounts/logout', controller
='accounts', action
='logout')
23 map.connect('/users/{id};{name}/edit', controller
='users', action
='profile_edit')
26 map.connect('/users', controller
='users', action
='list')
27 map.connect('/users/{id};{name}', controller
='users', action
='profile')
28 map.connect('/users/{id}', controller
='users', action
='profile')
30 def check_userid_hook(action
, **params
):
31 """Hook to see if a user is logged in and, if so, stick a user object in
37 if not 'user_id' in session
:
40 user
= meta
.Session
.query(model
.User
).get(session
['user_id'])
42 # Bogus id in the session somehow. Clear it
43 del session
['user_id']
50 class UsersPlugin(PluginBase
):
51 def controllers(self
):
53 accounts
= spline
.plugins
.users
.controllers
.accounts
.AccountsController
,
54 users
= spline
.plugins
.users
.controllers
.users
.UsersController
,
59 spline
.plugins
.users
.model
.User
,
60 spline
.plugins
.users
.model
.OpenID
,
63 def template_dirs(self
):
65 (resource_filename(__name__
, 'templates'), Priority
.NORMAL
)
70 ('routes_mapping', Priority
.NORMAL
, add_routes_hook
),
71 ('before_controller', Priority
.VERY_FIRST
, check_userid_hook
),
76 ('page_header', Priority
.NORMAL
, 'widgets/user_state.mako'),