Test suite runs and passes!
[zzz-floof.git] / floof / lib / base.py
index cb7c746..c93803b 100644 (file)
@@ -3,21 +3,25 @@
 Provides the BaseController class for subclassing.
 """
 from pylons.controllers import WSGIController
+from pylons.controllers.util import abort, redirect
 from pylons.templating import render_mako as render
-from pylons import config
-from floof import model
+from pylons import config, request, session, tmpl_context as c
+from routes import request_config
 
-from pylons import session, tmpl_context as c
+from floof import model
 from floof.model.users import User
 
 class BaseController(WSGIController):
 
     # NOTE: This could have been implemented as a middleware =]
-    def __before__(self, action, **params):
+    def __before__(self):
+        c.route = request_config().mapper_dict
+
         # Fetch current user object
         try:
             c.user = User.query.get(session['user_id'])
         except:
+            c.user = None
             pass
 
     def __call__(self, environ, start_response):
@@ -32,3 +36,11 @@ class BaseController(WSGIController):
             return WSGIController.__call__(self, environ, start_response)
         finally:
             model.Session.remove()
+
+
+    def redirect_to_referrer(self):
+        """Performs a redirect_to to wherever we came from.  Used for stuff
+        like logging in.
+        """
+        referrer = request.headers.get('REFERER', '/')
+        redirect(referrer, code=302)