refactor: introduce app factory + blueprints (auth, core, admin users, invite); add utils and wsgi entrypoint; keep legacy routes for now
This commit is contained in:
47
app/__init__.py
Normal file
47
app/__init__.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from flask import Flask
|
||||
from flask_login import LoginManager
|
||||
import os
|
||||
import json
|
||||
|
||||
from .models import initialize_db, User
|
||||
from .utils.auth import ensure_default_admin, ensure_test_users
|
||||
|
||||
login_manager = LoginManager()
|
||||
|
||||
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
app.secret_key = os.environ.get('FLASK_SECRET', 'sk_f098a9f7206d40f89bc2a0dd1d2d9182')
|
||||
app.jinja_env.filters['from_json'] = json.loads
|
||||
|
||||
# DB init and seeds
|
||||
initialize_db()
|
||||
if os.environ.get('SEED_ADMIN_DISABLED') != '1':
|
||||
ensure_default_admin()
|
||||
if os.environ.get('SEED_TEST_USERS_DISABLED') != '1':
|
||||
ensure_test_users()
|
||||
|
||||
# Login manager
|
||||
login_manager.init_app(app)
|
||||
login_manager.login_view = 'login'
|
||||
|
||||
@login_manager.user_loader
|
||||
def load_user(user_id):
|
||||
try:
|
||||
return User.get_by_id(int(user_id))
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
# Register blueprints
|
||||
from .blueprints.auth import bp as auth_bp
|
||||
from .blueprints.admin_users import bp as admin_users_bp
|
||||
from .blueprints.core import bp as core_bp
|
||||
from .blueprints.invite import bp as invite_bp
|
||||
|
||||
app.register_blueprint(auth_bp)
|
||||
app.register_blueprint(core_bp)
|
||||
app.register_blueprint(invite_bp)
|
||||
app.register_blueprint(admin_users_bp)
|
||||
|
||||
return app
|
||||
|
||||
Reference in New Issue
Block a user