type: 收敛测试 schemas 与协议层类型
This commit is contained in:
+5
-2
@@ -34,9 +34,10 @@ def get_current_user(
|
||||
payload = decode_access_token(token)
|
||||
if payload is None:
|
||||
raise credentials_exc
|
||||
user_id: int = payload.get("sub")
|
||||
if user_id is None:
|
||||
user_id_raw = payload.get("sub")
|
||||
if user_id_raw is None:
|
||||
raise credentials_exc
|
||||
user_id = int(user_id_raw)
|
||||
except JWTError:
|
||||
raise credentials_exc
|
||||
|
||||
@@ -48,6 +49,7 @@ def get_current_user(
|
||||
|
||||
def require_permission(permission: str):
|
||||
"""权限检查依赖工厂。用法: Depends(require_permission('user:create'))"""
|
||||
|
||||
def checker(current_user: User = Depends(get_current_user)) -> User:
|
||||
if not current_user.is_active:
|
||||
raise HTTPException(status_code=403, detail="账号已禁用")
|
||||
@@ -55,6 +57,7 @@ def require_permission(permission: str):
|
||||
if permission not in perms:
|
||||
raise HTTPException(status_code=403, detail=f"无权限: {permission}")
|
||||
return current_user
|
||||
|
||||
return checker
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user