fix(data): 清理旧数据并保护服务端写入
This commit is contained in:
@@ -3,16 +3,17 @@ import type { Member } from './members';
|
||||
export const SYSTEM_ADMIN_MEMBER_ID = 'm-8';
|
||||
export const SYSTEM_ADMIN_MEMBER_NAME = '超级管理员';
|
||||
export const SYSTEM_ADMIN_ROLE_ID = 'role-admin';
|
||||
export const SYSTEM_ADMIN_DEPARTMENT_ID = 'dept-1';
|
||||
export const SYSTEM_ADMIN_DEPARTMENT_ID = '';
|
||||
const LEGACY_SYSTEM_ADMIN_NAMES = ['陈十'];
|
||||
|
||||
export const SYSTEM_ADMIN_MEMBER: Member = {
|
||||
id: SYSTEM_ADMIN_MEMBER_ID,
|
||||
name: SYSTEM_ADMIN_MEMBER_NAME,
|
||||
username: 'admin',
|
||||
departmentId: SYSTEM_ADMIN_DEPARTMENT_ID,
|
||||
roleId: SYSTEM_ADMIN_ROLE_ID,
|
||||
phone: '13200132008',
|
||||
email: 'admin@company.com',
|
||||
email: '',
|
||||
password: 'Ftb@2024',
|
||||
createdAt: '2024-01-01',
|
||||
isSystem: true,
|
||||
@@ -24,10 +25,11 @@ function normalizeSystemAdminMember(member: Partial<Member>): Member {
|
||||
...member,
|
||||
id: SYSTEM_ADMIN_MEMBER_ID,
|
||||
name: SYSTEM_ADMIN_MEMBER_NAME,
|
||||
username: SYSTEM_ADMIN_MEMBER.username,
|
||||
departmentId: SYSTEM_ADMIN_DEPARTMENT_ID,
|
||||
roleId: SYSTEM_ADMIN_ROLE_ID,
|
||||
phone: member.phone || SYSTEM_ADMIN_MEMBER.phone,
|
||||
email: member.email || SYSTEM_ADMIN_MEMBER.email,
|
||||
email: SYSTEM_ADMIN_MEMBER.email,
|
||||
password: member.password || SYSTEM_ADMIN_MEMBER.password,
|
||||
createdAt: member.createdAt || SYSTEM_ADMIN_MEMBER.createdAt,
|
||||
isSystem: true,
|
||||
@@ -43,7 +45,9 @@ export function ensureSystemAdminMember(members: Member[]): { members: Member[];
|
||||
const current = members[index];
|
||||
const normalized = normalizeSystemAdminMember(current);
|
||||
const changed =
|
||||
index !== 0 ||
|
||||
current.name !== normalized.name ||
|
||||
current.username !== normalized.username ||
|
||||
current.departmentId !== normalized.departmentId ||
|
||||
current.roleId !== normalized.roleId ||
|
||||
current.phone !== normalized.phone ||
|
||||
@@ -55,14 +59,14 @@ export function ensureSystemAdminMember(members: Member[]): { members: Member[];
|
||||
if (!changed) return { members, changed: false };
|
||||
|
||||
return {
|
||||
members: members.map((m, i) => (i === index ? normalized : m)),
|
||||
members: [normalized, ...members.filter((_, i) => i !== index)],
|
||||
changed: true,
|
||||
};
|
||||
}
|
||||
|
||||
export function sanitizeSystemAdminPatch(id: string, data: Partial<Member>): Partial<Member> {
|
||||
if (id !== SYSTEM_ADMIN_MEMBER_ID) return data;
|
||||
const { name, departmentId, roleId, isSystem, ...allowed } = data;
|
||||
const { name, username, departmentId, roleId, email, isSystem, ...allowed } = data;
|
||||
return { ...allowed, isSystem: true };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user