sso/website/app.py

45 lines
1.1 KiB
Python

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)