Files
H3ConuMS-v2/backend/app/middleware/permission_middleware.py
T
2026-04-02 23:40:04 +08:00

28 lines
789 B
Python

"""权限检查中间件"""
from fastapi import HTTPException, Depends
from app.core.security import verify_token
ROLE_PERMISSIONS = {
'admin': ['*'],
'area_admin': ['device.view', 'device.check'],
'school_admin': ['device.view'],
'user': ['device.view']
}
def check_permission(required_permission: str):
def permission_checker(token: str):
payload = verify_token(token)
if not payload:
raise HTTPException(status_code=401, detail="未授权")
role = payload.get('role', 'user')
permissions = ROLE_PERMISSIONS.get(role, [])
if '*' in permissions or required_permission in permissions:
return payload
raise HTTPException(status_code=403, detail="权限不足")
return permission_checker