feat(小宝预警): 增加权限与数据键
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
sanitizeSystemAdminPatch,
|
||||
} from '@/lib/member-system';
|
||||
import { DEFAULT_ROLE_PERMISSIONS } from '@/lib/permissions';
|
||||
import { mergePresetRolePermissions } from '@/lib/role-permission-migration';
|
||||
import { loadServerData, saveServerData } from '@/lib/server-data';
|
||||
|
||||
const PRESET_DEPARTMENTS: Department[] = [
|
||||
@@ -81,13 +82,16 @@ export const useMemberStore = create<MemberState>((set, get) => ({
|
||||
}
|
||||
return r;
|
||||
});
|
||||
const permissionMerged = mergePresetRolePermissions(migratedRoles);
|
||||
const rolesWithNewDefaults = permissionMerged.roles;
|
||||
const adminRole = PRESET_ROLES.find((r) => r.id === SYSTEM_ADMIN_ROLE_ID)!;
|
||||
const roles = migratedRoles.some((r) => r.id === SYSTEM_ADMIN_ROLE_ID)
|
||||
? migratedRoles.map((r) => r.id === SYSTEM_ADMIN_ROLE_ID ? { ...adminRole, ...r, isSystem: true, permissions: DEFAULT_ROLE_PERMISSIONS[SYSTEM_ADMIN_ROLE_ID] } : r)
|
||||
: [adminRole, ...migratedRoles];
|
||||
const roles = rolesWithNewDefaults.some((r) => r.id === SYSTEM_ADMIN_ROLE_ID)
|
||||
? rolesWithNewDefaults.map((r) => r.id === SYSTEM_ADMIN_ROLE_ID ? { ...adminRole, ...r, isSystem: true, permissions: DEFAULT_ROLE_PERMISSIONS[SYSTEM_ADMIN_ROLE_ID] } : r)
|
||||
: [adminRole, ...rolesWithNewDefaults];
|
||||
const rolesChanged =
|
||||
roles.length !== migratedRoles.length ||
|
||||
roles.some((role, index) => JSON.stringify(role) !== JSON.stringify(migratedRoles[index]));
|
||||
permissionMerged.changed ||
|
||||
roles.length !== rolesWithNewDefaults.length ||
|
||||
roles.some((role, index) => JSON.stringify(role) !== JSON.stringify(rolesWithNewDefaults[index]));
|
||||
const ensured = ensureSystemAdminMember(cached.members);
|
||||
const next = {
|
||||
departments: cached.departments,
|
||||
|
||||
Reference in New Issue
Block a user