Browse Source

feat: user_loader鉴权

SongZihuan 2 năm trước cách đây
mục cha
commit
5b39dde3e4
1 tập tin đã thay đổi với 7 bổ sung2 xóa
  1. 7 2
      app/login.py

+ 7 - 2
app/login.py

@@ -1,7 +1,7 @@
 from functools import wraps
 from functools import wraps
 from flask import abort
 from flask import abort
 from flask_login import LoginManager, current_user
 from flask_login import LoginManager, current_user
-from .db import AnonymousUser, User
+from .db import AnonymousUser, User, Role
 
 
 
 
 login = LoginManager()
 login = LoginManager()
@@ -11,7 +11,12 @@ login.login_view = "auth.passwd_login_page"
 
 
 @login.user_loader
 @login.user_loader
 def user_loader(user_id: int):
 def user_loader(user_id: int):
-    return User.query.filter_by(id=user_id).first()
+    user = User.query.filter_by(id=user_id).first()
+    if user is None:
+        return None
+    if user.role.has_permission(Role.USABLE):
+        return user
+    return None
 
 
 
 
 def role_required(role: int):
 def role_required(role: int):