X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/e080215f07b8153ef01d6c840a4ba3a4bfc2d770..79cb1c0d3048c165fd3b9ff287ee1fbe361f904d:/floof/lib/base.py?ds=sidebyside diff --git a/floof/lib/base.py b/floof/lib/base.py index fd6ee47..c93803b 100644 --- a/floof/lib/base.py +++ b/floof/lib/base.py @@ -3,18 +3,44 @@ 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, request, session, tmpl_context as c +from routes import request_config -from floof.model import meta +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): + 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): """Invoke the Controller""" # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] + + # Insert any code to be run per request here. + try: return WSGIController.__call__(self, environ, start_response) finally: - meta.Session.remove() + 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)