Small improvement on requestProjectAccess

This commit is contained in:
Carlos Monastyrski
2025-09-05 18:02:50 -03:00
parent ddbc4aeded
commit 5822210511
@@ -1857,19 +1857,22 @@ export const projectServiceFactory = ({
let filteredProjectMembers = projectMembers
.filter((member) => member.roles.some((role) => role.role === ProjectMembershipRole.Admin))
.map((el) => el.user.email!);
if (filteredProjectMembers.length === 0) {
const customRolesWithMemberCreate = await projectRoleDAL.find({ projectId });
const customRoleSlugsCanalCreate = customRolesWithMemberCreate
.filter((role) => {
try {
const permissions = JSON.parse(role.permissions as string) as Array<{
action: string;
subject: string;
}>;
return permissions.some(
(perm) =>
perm.action === ProjectPermissionMemberActions.Create && perm.subject === ProjectPermissionSub.Member
);
const permissions = (
typeof role.permissions === "string" ? JSON.parse(role.permissions) : role.permissions
) as Array<[string, string, object?, number?]>;
return permissions.some(([permissionActions, permissionSubject]) => {
if (permissionSubject === ProjectPermissionSub.Member) {
const actionsList = permissionActions.split(",").map((action) => action.trim());
return actionsList.includes(ProjectPermissionMemberActions.Create);
}
return false;
});
} catch {
return false;
}
@@ -1888,6 +1891,7 @@ export const projectServiceFactory = ({
filteredProjectMembers = usersWithCustomCreateMemberRole;
}
}
}
if (filteredProjectMembers.length === 0) {
throw new BadRequestError({