fix permissions

This commit is contained in:
jxxghp
2024-07-07 08:09:26 +08:00
parent a567a8644b
commit bb4355fbe0
8 changed files with 49 additions and 34 deletions

View File

@@ -48,7 +48,7 @@ def get_current_active_superuser(
return current_user
def get_current_active_permission_user(
def check_user_permission(
permission: str,
current_user: User = Depends(get_current_user)
) -> User:
@@ -57,9 +57,13 @@ def get_current_active_permission_user(
"""
if not current_user.is_active:
raise HTTPException(status_code=403, detail="用户未激活")
if current_user.is_superuser:
return current_user
if not current_user.permissions:
raise HTTPException(status_code=400, detail="用户权限不足")
permission_dict = json.loads(current_user.permissions)
if permission_dict.get("admin"):
return current_user
for key in permission.split("."):
if key not in permission_dict or not permission_dict[key]:
raise HTTPException(status_code=400, detail="用户权限不足")