fix(saas): 统一权限体系 — check_permission 辅助函数 + admin:full 超级权限
- 新增 check_permission() 统一权限检查,admin:full 自动通过所有检查 - 统一种子角色权限名称与 handler 检查一致 (provider:manage, model:manage, config:write) - super_admin 拥有 admin:full + 所有模块管理权限 - 全部 handler 迁移到 check_permission(),消除手动 contains 检查
This commit is contained in:
@@ -152,6 +152,17 @@ async fn get_role_permissions(db: &sqlx::SqlitePool, role: &str) -> SaasResult<V
|
||||
Ok(permissions)
|
||||
}
|
||||
|
||||
/// 检查权限 (admin:full 自动通过所有检查)
|
||||
pub fn check_permission(ctx: &AuthContext, permission: &str) -> SaasResult<()> {
|
||||
if ctx.permissions.contains(&"admin:full".to_string()) {
|
||||
return Ok(());
|
||||
}
|
||||
if !ctx.permissions.contains(&permission.to_string()) {
|
||||
return Err(SaasError::Forbidden(format!("需要 {} 权限", permission)));
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// 记录操作日志
|
||||
pub async fn log_operation(
|
||||
db: &sqlx::SqlitePool,
|
||||
|
||||
Reference in New Issue
Block a user