misc: added no access exemption

This commit is contained in:
Sheen Capadngan
2025-03-27 13:26:30 +08:00
parent 956d0f6c5d
commit a1318d54b1
2 changed files with 38 additions and 35 deletions
+19 -18
View File
@@ -87,25 +87,26 @@ export const groupServiceFactory = ({
actorOrgId actorOrgId
); );
const isCustomRole = Boolean(customRole); const isCustomRole = Boolean(customRole);
if (role !== OrgMembershipRole.NoAccess) {
const permissionBoundary = validatePrivilegeChangeOperation(
membership.shouldUseNewPrivilegeSystem,
OrgPermissionGroupActions.GrantPrivileges,
OrgPermissionSubjects.Groups,
permission,
rolePermission
);
const permissionBoundary = validatePrivilegeChangeOperation( if (!permissionBoundary.isValid)
membership.shouldUseNewPrivilegeSystem, throw new PermissionBoundaryError({
OrgPermissionGroupActions.GrantPrivileges, message: constructPermissionErrorMessage(
OrgPermissionSubjects.Groups, "Failed to create group",
permission, membership.shouldUseNewPrivilegeSystem,
rolePermission OrgPermissionGroupActions.GrantPrivileges,
); OrgPermissionSubjects.Groups
),
if (!permissionBoundary.isValid) details: { missingPermissions: permissionBoundary.missingPermissions }
throw new PermissionBoundaryError({ });
message: constructPermissionErrorMessage( }
"Failed to create group",
membership.shouldUseNewPrivilegeSystem,
OrgPermissionGroupActions.GrantPrivileges,
OrgPermissionSubjects.Groups
),
details: { missingPermissions: permissionBoundary.missingPermissions }
});
const group = await groupDAL.transaction(async (tx) => { const group = await groupDAL.transaction(async (tx) => {
const existingGroup = await groupDAL.findOne({ orgId: actorOrgId, name }, tx); const existingGroup = await groupDAL.findOne({ orgId: actorOrgId, name }, tx);
+19 -17
View File
@@ -945,24 +945,26 @@ export const orgServiceFactory = ({
projectId projectId
); );
const permissionBoundary = validatePrivilegeChangeOperation( if (invitedRole !== ProjectMembershipRole.NoAccess) {
membership.shouldUseNewPrivilegeSystem, const permissionBoundary = validatePrivilegeChangeOperation(
ProjectPermissionMemberActions.GrantPrivileges, membership.shouldUseNewPrivilegeSystem,
ProjectPermissionSub.Member, ProjectPermissionMemberActions.GrantPrivileges,
projectPermission, ProjectPermissionSub.Member,
rolePermission projectPermission,
); rolePermission
);
if (!permissionBoundary.isValid) if (!permissionBoundary.isValid)
throw new PermissionBoundaryError({ throw new PermissionBoundaryError({
message: constructPermissionErrorMessage( message: constructPermissionErrorMessage(
"Failed to invite user to the project", "Failed to invite user to the project",
membership.shouldUseNewPrivilegeSystem, membership.shouldUseNewPrivilegeSystem,
ProjectPermissionMemberActions.GrantPrivileges, ProjectPermissionMemberActions.GrantPrivileges,
ProjectPermissionSub.Member ProjectPermissionSub.Member
), ),
details: { missingPermissions: permissionBoundary.missingPermissions } details: { missingPermissions: permissionBoundary.missingPermissions }
}); });
}
} }
const customProjectRoles = invitedProjectRoles.filter( const customProjectRoles = invitedProjectRoles.filter(