初始化
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
"""权限检查中间件"""
|
||||
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
|
||||
Reference in New Issue
Block a user