Updated login to work correctly with current spline. #69
[zzz-spline-users.git] / spline / plugins / users / __init__.py
index 53633d7..92a825c 100644 (file)
@@ -1,17 +1,27 @@
+from pkg_resources import resource_filename
+
 from pylons import c, session
 
 from spline.lib.plugin import PluginBase
+from spline.lib.plugin import PluginBase, PluginLink, Priority
 import spline.model as model
 import spline.model.meta as meta
 
-import controllers.accounts
-import model as user_model
+import spline.plugins.users.controllers.accounts
+import spline.plugins.users.model
+
+def add_routes_hook(map, *args, **kwargs):
+    """Hook to inject some of our behavior into the routes configuration."""
+    map.connect('/accounts/login_begin', controller='accounts', action='login_begin')
+    map.connect('/accounts/login_finish', controller='accounts', action='login_finish')
 
 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
 
@@ -28,13 +38,27 @@ def check_userid_hook(action, **params):
 class UsersPlugin(PluginBase):
     def controllers(self):
         return dict(
-            accounts = controllers.accounts.AccountsController,
+            accounts = spline.plugins.users.controllers.accounts.AccountsController,
         )
 
     def model(self):
-        return [user_model.User, user_model.OpenID]
+        return [
+            spline.plugins.users.model.User,
+            spline.plugins.users.model.OpenID,
+        ]
+
+    def template_dirs(self):
+        return [
+            (resource_filename(__name__, 'templates'), Priority.NORMAL)
+        ]
 
     def hooks(self):
         return [
-            ('before_controller', 1, check_userid_hook),
+            ('routes_mapping',    Priority.NORMAL,      add_routes_hook),
+            ('before_controller', Priority.VERY_FIRST,  check_userid_hook),
+        ]
+
+    def widgets(self):
+        return [
+            ('page_header', Priority.NORMAL, 'widgets/user_state.mako'),
         ]