Provides the BaseController class for subclassing.
"""
-from pylons import session, tmpl_context as c
from pylons.controllers import WSGIController
from pylons.templating import render_mako as render
+from pylons import config, session, tmpl_context as c
+from routes import request_config
+from floof import model
from floof.model.users import User
class BaseController(WSGIController):
- def __before__(self, action, **params):
+ # 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'])
# WSGIController.__call__ dispatches to the Controller method
# the request is routed to. This routing information is
# available in environ['pylons.routes_dict']
- return WSGIController.__call__(self, environ, start_response)
+
+ # Insert any code to be run per request here.
+
+ try:
+ return WSGIController.__call__(self, environ, start_response)
+ finally:
+ model.Session.remove()