feat(admin): 更新后台权限管理与同步逻辑,简化权限检查并优化文档

- 新增后台 RBAC 相关文档,提供权限目录与维护命令说明。
- 移除不必要的角色资源同步检查,简化权限审计命令。
- 更新权限描述与同步逻辑,确保一致性与可维护性。
- 统一权限注册表,替换过时的权限别名,增强代码可读性。
This commit is contained in:
2026-05-22 16:11:48 +08:00
parent 2e8ab58970
commit 1d31f9e872
24 changed files with 489 additions and 238 deletions

View File

@@ -4,6 +4,48 @@ namespace App\Support;
final class AdminPermissionBridge
{
/** @var array<string, string> */
private const DEPRECATED_LEGACY_SLUG_ALIASES = [
'prd.audit.all' => 'prd.audit.view',
'prd.audit.self' => 'prd.audit.view',
'prd.audit.finance' => 'prd.audit.view',
'prd.report.all' => 'prd.report.view',
'prd.report.risk' => 'prd.report.view',
'prd.report.finance' => 'prd.report.view',
'prd.report.player' => 'prd.report.view',
];
/**
* 将请求或历史数据中的 `prd.*` 归一为当前 Registry 目录中的 slug。
*
* @param list<string> $slugs
* @return list<string>
*/
public static function normalizeCanonicalLegacySlugs(array $slugs): array
{
$canonical = [];
$known = array_fill_keys(self::allLegacySlugs(), true);
foreach ($slugs as $slug) {
if (! is_string($slug) || $slug === '') {
continue;
}
if (isset(self::DEPRECATED_LEGACY_SLUG_ALIASES[$slug])) {
$slug = self::DEPRECATED_LEGACY_SLUG_ALIASES[$slug];
}
if (isset($known[$slug])) {
$canonical[$slug] = true;
}
}
$keys = array_keys($canonical);
sort($keys);
return $keys;
}
/** @return array<string, list<string>> */
public static function legacyMap(): array
{