fix(权限): 修复版本详情写入权限校验

This commit is contained in:
2026-07-08 19:27:41 +08:00
parent cafa0f134a
commit deebc5404a
5 changed files with 191 additions and 17 deletions

View File

@@ -56,3 +56,23 @@ export function addVersionMembers(
return [...currentMembers, ...additions];
}
export function isVersionMemberName(currentUserName: string | undefined, versionMembers: VersionMember[]): boolean {
const name = currentUserName?.trim();
if (!name) return false;
return versionMembers.some((member) => member.name === name);
}
export function canWriteVersionWork(input: {
role?: { permissions?: string[] } | null;
permission: string;
currentUserName?: string;
versionMembers: VersionMember[];
readOnly?: boolean;
}): boolean {
if (input.readOnly) return false;
const permissions = input.role?.permissions ?? [];
if (permissions.includes('*')) return true;
if (!permissions.includes(input.permission)) return false;
return isVersionMemberName(input.currentUserName, input.versionMembers);
}