45 lines
1.1 KiB
Python
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)
|