Files
lotteryLaravel/docs/admin-rbac.md
kang 1d31f9e872 feat(admin): 更新后台权限管理与同步逻辑,简化权限检查并优化文档
- 新增后台 RBAC 相关文档,提供权限目录与维护命令说明。
- 移除不必要的角色资源同步检查,简化权限审计命令。
- 更新权限描述与同步逻辑,确保一致性与可维护性。
- 统一权限注册表,替换过时的权限别名,增强代码可读性。
2026-05-22 16:11:48 +08:00

36 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 后台 RBAC 与导航分工
## 单一真相源
| 能力 | 来源 | 说明 |
|------|------|------|
| 侧栏 / `auth/me``navigation` | `App\Support\AdminAuthorizationRegistry::navigationDefinitions()` | **代码注册表**,改菜单需发版 |
| 角色可勾选的产品权限 `prd.*` | 同上 `permissionDefinitions()` | UI 展示名与 `permission_code` 映射 |
| API 鉴权 `permission_code` | 库表 `admin_menu_actions` | 运行时校验 |
| 路由资源 | 库表 `admin_api_resources` + `admin_api_resource_bindings` | 由 `php artisan lottery:admin-auth-sync` 从 Registry 同步 |
## `admin_menus` 不是侧栏配置
-`admin_menus`:仅用于 **`admin_menu_actions` 的业务分组**(权限模块树)。
- **不要**通过改 `admin_menus` 期望侧栏变化;侧栏只看 Registry + 用户拥有的 `prd.*`
## 角色权限如何存储
- **权威数据**`admin_role_menu_actions`(角色 ↔ 动作权限)。
- **`prd.*` 展示**:由 `AdminPermissionBridge::legacySlugsGrantedByMenuActionCodes()` 从已授权动作**反推**,不单独落库。
- 用户直接授权:`admin_user_menu_actions`(可选,与角色权限合并生效)。
## 维护命令
```bash
php artisan lottery:admin-auth-sync --audit # 同步 API 资源与 bindings并体检
php artisan lottery:admin-auth-audit # 仅体检路由覆盖与 binding
```
## 已废弃的 `prd.*`(请求体仍可传入,会自动归一)
| 旧 slug | 归一为 |
|---------|--------|
| `prd.audit.all` / `prd.audit.self` / `prd.audit.finance` | `prd.audit.view` |
| `prd.report.all` / `prd.report.risk` / `prd.report.finance` / `prd.report.player` | `prd.report.view` |