diff --git a/src/lib/rbac.tsx b/src/lib/rbac.tsx index 93e91ca..c05d93a 100644 --- a/src/lib/rbac.tsx +++ b/src/lib/rbac.tsx @@ -29,7 +29,8 @@ export interface NavGroup { export const NAV: NavGroup[] = [ { items: [ - { to: "/", label: "总览", icon: LayoutDashboard, roles: ["operator", "government", "enterprise", "carrier", "provider", "investor", "opc", "developer"] }, + // 平台端只保留运营(operator)单一角色;其它端口(政务/企业/服务商/投资/OPC/载体等)不作为平台端角色入口 + { to: "/", label: "总览", icon: LayoutDashboard, roles: ["operator"] }, ], }, { diff --git a/src/pages/login/index.tsx b/src/pages/login/index.tsx index afd43a5..f7107ea 100644 --- a/src/pages/login/index.tsx +++ b/src/pages/login/index.tsx @@ -43,8 +43,9 @@ export default function LoginPage() { setLoading(true); try { const res = await login(username, password); - // 多身份:进入身份选择 - if (res && res.identities.length > 1) setPendingIds(res.identities); + // 平台端只保留运营(operator)单一角色:过滤其它端口身份(政务/企业/载体/服务商等) + const operatorIds = (res?.identities ?? []).filter((i) => i.role === "operator"); + if (operatorIds.length > 1) setPendingIds(operatorIds); else navigate("/", { replace: true }); } catch (err) { setError(err instanceof Error ? err.message : "登录失败");