+from spline.lib.plugin import PluginBase, PluginLink, Priority
+import spline.model as model
+import spline.model.meta as meta
+
+import spline.plugins.users.controllers.accounts
+import spline.plugins.users.controllers.users
+import spline.plugins.users.model
+
+def add_routes_hook(map, *args, **kwargs):
+ """Hook to inject some of our behavior into the routes configuration."""
+ # Login, logout
+ map.connect('/accounts/login', controller='accounts', action='login')
+ map.connect('/accounts/login_begin', controller='accounts', action='login_begin')
+ map.connect('/accounts/login_finish', controller='accounts', action='login_finish')
+ map.connect('/accounts/logout', controller='accounts', action='logout')
+
+ # Self-admin
+ map.connect('/users/{id};{name}/edit', controller='users', action='profile_edit')
+
+ # Public per-user pages
+ map.connect('/users/{id};{name}', controller='users', action='profile')
+ map.connect('/users/{id}', controller='users', action='profile')
+
+def check_userid_hook(action, **params):
+ """Hook to see if a user is logged in and, if so, stick a user object in
+ c.
+ """
+
+ c.user = None
+
+ if not 'user_id' in session:
+ return
+
+ user = meta.Session.query(model.User).get(session['user_id'])
+ if not user:
+ # Bogus id in the session somehow. Clear it
+ del session['user_id']
+ session.save()
+ return
+
+ c.user = user