Jul 13 - Optimize code
This commit is contained in:
+21
-1
@@ -45,7 +45,7 @@ def _init_login(app):
|
||||
@login_manager.user_loader
|
||||
def load_user(user_id):
|
||||
from app.models.user import User
|
||||
return User.query.get(int(user_id))
|
||||
return db.session.get(User, int(user_id))
|
||||
|
||||
|
||||
def _init_babel(app):
|
||||
@@ -122,6 +122,26 @@ def _register_context(app):
|
||||
|
||||
|
||||
def _register_hooks(app):
|
||||
@app.before_request
|
||||
def enforce_active_account():
|
||||
# A ban/suspension applied mid-session must take effect on the next
|
||||
# request, not just at next login. Flask-Login only checks is_active
|
||||
# when logging in, so we re-check the live status here.
|
||||
if not current_user.is_authenticated:
|
||||
return None
|
||||
if getattr(current_user, "is_active", True):
|
||||
return None
|
||||
from flask import flash, redirect, url_for
|
||||
from flask_babel import gettext as _
|
||||
from flask_login import logout_user
|
||||
ep = request.endpoint or ""
|
||||
if ep in ("static", "auth.logout", "auth.login"):
|
||||
return None
|
||||
logout_user()
|
||||
flash(_("Your account is no longer active. Please contact support."),
|
||||
"warning")
|
||||
return redirect(url_for("auth.login"))
|
||||
|
||||
@app.before_request
|
||||
def check_maintenance():
|
||||
from app.services.settings import get_setting
|
||||
|
||||
Reference in New Issue
Block a user