empresa-libre/source/app/middleware.py

51 lines
1.3 KiB
Python

#!/usr/bin/env python
import falcon
from controllers import util
from settings import PATH_STATIC
def handle_404(req, resp):
id_session = req.cookies.get('beaker.session.id', '')
if id_session:
raise falcon.HTTPTemporaryRedirect('/main')
raise falcon.HTTPTemporaryRedirect('/')
def get_template(req, resp, resource):
session = req.env['beaker.session']
resp.content_type = 'text/html'
data = {'username': session.get('user', '')}
resp.body = util.get_template(resource.template, data)
def static(req, res):
path = PATH_STATIC + req.path
if util.is_file(path):
res.content_type = util.get_mimetype(path)
res.stream, res.stream_len = util.get_stream(path)
res.status = falcon.HTTP_200
else:
res.status = falcon.HTTP_404
class AuthMiddleware(object):
#~ def process_request(self, req, resp):
def process_resource(self, req, resp, resource, params):
paths = ('/main', '/partners', '/cp')
id_session = req.cookies.get('beaker.session.id', '')
if req.path in paths and not id_session:
raise falcon.HTTPTemporaryRedirect('/')
class JSONTranslator(object):
def process_response(self, req, resp, resource):
if 'result' not in req.context:
return
resp.body = util.dumps(req.context['result'])