mirror of https://git.48k.eu/ogcp
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# Copyright (C) 2020-2021 Soleta Networks <info@soleta.eu>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify it under
|
|
# the terms of the GNU Affero General Public License as published by the
|
|
# Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
from flask_wtf.csrf import CSRFProtect
|
|
from flask_bootstrap import Bootstrap
|
|
from flask_babel import Babel
|
|
from flask import Flask
|
|
from flask.logging import logging
|
|
from os import urandom
|
|
|
|
ogcp_cfg_path = 'cfg/ogcp.json'
|
|
|
|
app = Flask(__name__)
|
|
app.config.from_json(ogcp_cfg_path)
|
|
|
|
if 'SESSION_COOKIE_SAMESITE' not in app.config or not app.config['SESSION_COOKIE_SAMESITE']:
|
|
app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
|
|
|
|
app.secret_key = urandom(16)
|
|
|
|
class NoScopeStatus(logging.Filter):
|
|
def filter(self, record):
|
|
return 'GET /scopes/status' not in record.getMessage()
|
|
|
|
logging.getLogger("werkzeug").addFilter(NoScopeStatus())
|
|
|
|
babel = Babel(app)
|
|
csrf = CSRFProtect(app)
|
|
bootstrap = Bootstrap(app)
|
|
|
|
|
|
@babel.localeselector
|
|
def localeselector():
|
|
return app.config.get('LANG', 'en')
|
|
|
|
import ogcp.views
|
|
import ogcp.filters
|