fix(权限): 修复版本详情写入权限校验
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user