This commit is contained in:
ArtoriasWu
2026-06-24 16:25:58 +08:00
38 changed files with 1479 additions and 680 deletions
+1
View File
@@ -40,6 +40,7 @@ public static class PageCatalog
new("admin-processes", "进程管理", "设计与编排", ScopePlatform),
new("admin-scripts", "脚本管理", "设计与编排", ScopePlatform),
new("admin-task-templates", "任务编排", "设计与编排", ScopePlatform),
new("admin-simple-fields", "字段管理", "设计与编排", ScopePlatform),
// ── 管理端 / Platform:平台配置中心(聚合页,每个 Key 对齐前端聚合路由 route.name) ──
new("admin-config-strategy", "调度策略", "平台配置中心", ScopePlatform),
+15
View File
@@ -120,6 +120,12 @@ public sealed class RbacStore
&& !r.Pages.Contains("admin-task-templates", StringComparer.OrdinalIgnoreCase)
&& hasProcessAndScript)
r.Pages.Add("admin-task-templates");
// Simple 字段管理:与任务编排同属设计与编排,有任务编排权限时自动补齐。
if (!r.Pages.Contains(PageCatalog.Wildcard)
&& !r.Pages.Contains("admin-simple-fields", StringComparer.OrdinalIgnoreCase)
&& r.Pages.Contains("admin-task-templates", StringComparer.OrdinalIgnoreCase))
r.Pages.Add("admin-simple-fields");
}
private RbacSnapshot SeedDefault(IConfiguration config)
@@ -206,6 +212,15 @@ public sealed class RbacStore
lock (_gate) { var u = FindByName(username); return u is null ? null : Clone(u); }
}
public RbacUser? FindUserById(string id)
{
lock (_gate)
{
var u = _snapshot.Users.FirstOrDefault(x => x.Id == id);
return u is null ? null : Clone(u);
}
}
/// <summary>当前用户可登录的 scope 集合(其角色覆盖的 scope<c>*</c> 角色覆盖全部)。</summary>
public List<string> UsableScopes(RbacUser user)
{