update user page style

This commit is contained in:
Timi
2026-08-19 10:39:19 +08:00
parent 0109a7f3aa
commit ff156926f5
8 changed files with 115 additions and 115 deletions
+38 -6
View File
@@ -34,14 +34,46 @@ export function getRoleDisplayName(role: ManagedUserRole | undefined, roleList:
return typeof role === "string" ? role : role.name || role.code || "未配置角色";
}
export function buildEffectiveRoleCodeSet(user: ManagedUser): Set<string> {
export function buildEffectiveRoleCodeSet(user: ManagedUser, roleList: Role[] = []): Set<string> {
const roleCodeSet = new Set<string>();
for (const role of getManagedUserRoleList(user)) {
if (typeof role !== "string") {
roleCodeSet.add(buildRoleCode(role as Role));
continue;
const visitedRoleIds = new Set<string>();
function addRole(role: ManagedUserRole | Role): void {
const roleId = typeof role === "string"
? roleList.find(item => buildRoleCode(item) === role || item.code === role)?.id
: role.id || roleList.find(item => buildRoleCode(item) === buildRoleCode(role as Role))?.id;
if (roleId && visitedRoleIds.has(roleId)) {
return;
}
roleCodeSet.add(role);
if (roleId) {
visitedRoleIds.add(roleId);
}
if (typeof role === "string") {
roleCodeSet.add(role);
const separatorIndex = role.indexOf(":");
if (-1 < separatorIndex) {
roleCodeSet.add(role.slice(separatorIndex + 1));
}
} else {
roleCodeSet.add(role.code);
roleCodeSet.add(buildRoleCode(role as Role));
}
const fullRole = roleId ? roleList.find(item => item.id === roleId) : undefined;
for (const childRoleId of fullRole?.childRoleIdList || []) {
const childRole = roleList.find(item => item.id === childRoleId);
if (childRole) {
addRole(childRole);
}
}
}
for (const role of getManagedUserRoleList(user)) {
addRole(role);
}
for (const roleCode of user.user?.roleList || []) {
addRole(roleCode);
}
return roleCodeSet;
}