From 0f3108f6fb2f22c8cbe85b5b4e9e735b57e680ed Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Sat, 6 Dec 2025 09:37:25 -0500 Subject: [PATCH] fix: removed projectMembershipId entirely --- ...ity-project-additional-privilege-router.ts | 6 - .../identitiy-additional-privilege.ts | 4 +- .../additional-privilege-service.ts | 112 ++---------------- 3 files changed, 10 insertions(+), 112 deletions(-) diff --git a/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts b/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts index b13194278f..23ba27b8a5 100644 --- a/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts +++ b/backend/src/ee/routes/v2/identity-project-additional-privilege-router.ts @@ -84,7 +84,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privilege: { ...privilege, identityId: req.body.identityId, - projectMembershipId: privilege.projectMembershipId || req.body.projectId, projectId: req.body.projectId, slug: privilege.name } @@ -168,7 +167,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privilege: { ...privilege, identityId: privilegeDoc.actorIdentityId as string, - projectMembershipId: privilege.projectMembershipId || (privilegeDoc.projectId as string), projectId: privilegeDoc.projectId as string, slug: privilege.name } @@ -222,7 +220,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privilege: { ...privilege, identityId: privilegeDoc.actorIdentityId as string, - projectMembershipId: privilege.projectMembershipId || (privilegeDoc.projectId as string), projectId: privilegeDoc.projectId as string, slug: privilege.name } @@ -276,7 +273,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privilege: { ...privilege, identityId: privilegeDoc.actorIdentityId as string, - projectMembershipId: privilege.projectMembershipId || (privilegeDoc.projectId as string), projectId: privilegeDoc.projectId as string, slug: privilege.name } @@ -339,7 +335,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privilege: { ...privilege, identityId: req.query.identityId, - projectMembershipId: privilege.projectMembershipId || (privilege.projectId as string), projectId, slug: privilege.name } @@ -391,7 +386,6 @@ export const registerIdentityProjectAdditionalPrivilegeRouter = async (server: F privileges: privileges.map((privilege) => ({ ...privilege, identityId: req.query.identityId, - projectMembershipId: privilege.projectMembershipId || (privilege.projectId as string), projectId: req.query.projectId, slug: privilege.name })) diff --git a/backend/src/server/routes/sanitizedSchema/identitiy-additional-privilege.ts b/backend/src/server/routes/sanitizedSchema/identitiy-additional-privilege.ts index e44b9af4ec..0feb1ba55c 100644 --- a/backend/src/server/routes/sanitizedSchema/identitiy-additional-privilege.ts +++ b/backend/src/server/routes/sanitizedSchema/identitiy-additional-privilege.ts @@ -2,6 +2,8 @@ import { IdentityProjectAdditionalPrivilegeSchema } from "@app/db/schemas"; import { UnpackedPermissionSchema } from "./permission"; -export const SanitizedIdentityPrivilegeSchema = IdentityProjectAdditionalPrivilegeSchema.extend({ +export const SanitizedIdentityPrivilegeSchema = IdentityProjectAdditionalPrivilegeSchema.omit({ + projectMembershipId: true +}).extend({ permissions: UnpackedPermissionSchema.array() }); diff --git a/backend/src/services/additional-privilege/additional-privilege-service.ts b/backend/src/services/additional-privilege/additional-privilege-service.ts index 3fdc586344..69f103c853 100644 --- a/backend/src/services/additional-privilege/additional-privilege-service.ts +++ b/backend/src/services/additional-privilege/additional-privilege-service.ts @@ -58,21 +58,6 @@ export const additionalPrivilegeServiceFactory = ({ const scope = factory.getScopeField(dto.scopeData); const dbActorField = data.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: data.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - - if (!projectMembership) { - throw new NotFoundError({ message: `Project membership for ${data.actorType} ${data.actorId} not found` }); - } - - projectMembershipId = projectMembership.id; - } - const existingSlug = await additionalPrivilegeDAL.findOne({ name: data.name, [dbActorField]: data.actorId, @@ -96,8 +81,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; } @@ -124,8 +108,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; }; @@ -137,21 +120,6 @@ export const additionalPrivilegeServiceFactory = ({ const scope = factory.getScopeField(dto.scopeData); const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: dto.selector.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - if (!projectMembership) { - throw new NotFoundError({ - message: `Project membership for ${dto.selector.actorType} ${dto.selector.actorId} not found` - }); - } - projectMembershipId = projectMembership.id; - } - const existingPrivilege = await additionalPrivilegeDAL.findOne({ [dbActorField]: dto.selector.actorId, id: dto.selector.id, @@ -176,8 +144,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; } @@ -202,8 +169,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; }; @@ -215,21 +181,6 @@ export const additionalPrivilegeServiceFactory = ({ const scope = factory.getScopeField(dto.scopeData); const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: dto.selector.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - if (!projectMembership) { - throw new NotFoundError({ - message: `Project membership for ${dto.selector.actorType} ${dto.selector.actorId} not found` - }); - } - projectMembershipId = projectMembership.id; - } - const existingPrivilege = await additionalPrivilegeDAL.findOne({ id: selector.id, [dbActorField]: dto.selector.actorId, @@ -242,8 +193,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; }; @@ -255,21 +205,6 @@ export const additionalPrivilegeServiceFactory = ({ const scope = factory.getScopeField(dto.scopeData); const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: dto.selector.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - if (!projectMembership) { - throw new NotFoundError({ - message: `Project membership for ${dto.selector.actorType} ${dto.selector.actorId} not found` - }); - } - projectMembershipId = projectMembership.id; - } - const additionalPrivilege = await additionalPrivilegeDAL.findOne({ id: selector.id, [dbActorField]: dto.selector.actorId, @@ -281,8 +216,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; }; @@ -294,21 +228,6 @@ export const additionalPrivilegeServiceFactory = ({ const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; const scope = factory.getScopeField(dto.scopeData); - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: dto.selector.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - - if (!projectMembership) { - throw new NotFoundError({ - message: `Project membership for ${dto.selector.actorType} ${dto.selector.actorId} not found` - }); - } - projectMembershipId = projectMembership.id; - } const additionalPrivilege = await additionalPrivilegeDAL.findOne({ name: selector.name, [dbActorField]: dto.selector.actorId, @@ -320,8 +239,7 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivilege: { ...additionalPrivilege, - permissions: unpackPermissions(additionalPrivilege.permissions), - projectMembershipId + permissions: unpackPermissions(additionalPrivilege.permissions) } }; }; @@ -333,21 +251,6 @@ export const additionalPrivilegeServiceFactory = ({ const scope = factory.getScopeField(dto.scopeData); const dbActorField = dto.selector.actorType === ActorType.IDENTITY ? "actorIdentityId" : "actorUserId"; - let projectMembershipId: string | undefined; - if (scope.key === "projectId") { - const projectMembership = await membershipDAL.findOne({ - [dbActorField]: dto.selector.actorId, - scopeProjectId: scope.value, - scope: AccessScope.Project - }); - if (!projectMembership) { - throw new NotFoundError({ - message: `Project membership for ${dto.selector.actorType} ${dto.selector.actorId} not found` - }); - } - projectMembershipId = projectMembership.id; - } - const additionalPrivileges = await additionalPrivilegeDAL.find({ [dbActorField]: dto.selector.actorId, [scope.key]: scope.value @@ -356,7 +259,6 @@ export const additionalPrivilegeServiceFactory = ({ return { additionalPrivileges: additionalPrivileges.map((el) => ({ ...el, - projectMembershipId, permissions: unpackPermissions(el.permissions) })) };