import logging from flask import Flask from flask_login import LoginManager from flask_migrate import Migrate from . import models from .routes import bp from .ldap import LDAPUser from .oauth2 import config_oauth def create_app(): app = Flask("auth") app.config.from_object(__name__) app.config.from_pyfile("auth.cfg") setup_app(app) return app def register_shellcontext(app): """Register shell context objects.""" def shell_context(): """Shell context objects.""" return {"db": models.db, "models": models} app.shell_context_processor(shell_context) def setup_app(app): logging.basicConfig( level=logging.DEBUG, format="[%(asctime)-15s] %(name)-10s %(levelname)7s: %(message)s", ) models.db.init_app(app) migrate = Migrate(app, models.db) login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = "/login" login_manager.user_loader(LDAPUser.by_login) config_oauth(app) app.register_blueprint(bp, url_prefix='') register_shellcontext(app)