1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-14 10:53:30 +02:00
Mailu/core/admin/mailu/utils.py

51 lines
1.1 KiB
Python
Raw Normal View History

2019-12-06 10:35:21 +02:00
from mailu import models, limiter
2018-10-18 17:55:07 +02:00
import flask
import flask_login
import flask_script
import flask_migrate
import flask_babel
2018-10-18 17:55:07 +02:00
from werkzeug.contrib import fixers
# Login configuration
login = flask_login.LoginManager()
login.login_view = "ui.login"
2018-10-18 17:55:07 +02:00
@login.unauthorized_handler
def handle_needs_login():
return flask.redirect(
flask.url_for('ui.login', next=flask.request.endpoint)
)
2019-12-06 10:35:21 +02:00
# Rate limiter
limiter = limiter.Limiter()
# Application translation
babel = flask_babel.Babel()
@babel.localeselector
def get_locale():
translations = list(map(str, babel.list_translations()))
return flask.request.accept_languages.best_match(translations)
# Proxy fixer
class PrefixMiddleware(object):
def __call__(self, environ, start_response):
prefix = environ.get('HTTP_X_FORWARDED_PREFIX', '')
if prefix:
environ['SCRIPT_NAME'] = prefix
return self.app(environ, start_response)
def init_app(self, app):
self.app = fixers.ProxyFix(app.wsgi_app)
app.wsgi_app = self
proxy = PrefixMiddleware()
2018-11-08 21:32:23 +02:00
# Data migrate
migrate = flask_migrate.Migrate()