"""权限检查中间件""" 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