empresa-libre/source/app/middleware.py

63 lines
1.7 KiB
Python

#!/usr/bin/env python
import falcon
from controllers import util
from models import main
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_resource(self, req, resp, resource, params):
id_session = req.cookies.get('beaker.session.id', '')
if not id_session and req.path != '/':
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'])
class ConnectionMiddleware(object):
#~ def process_request(self, req, resp):
def process_resource(self, req, resp, resource, params):
id_session = req.cookies.get('beaker.session.id', '')
session = req.env['beaker.session']
rfc = session.get('rfc', '')
if id_session and rfc:
opt = util.get_con(rfc)
main.conectar(opt)
def process_response(self, req, resp, resource):
main.desconectar()