From d92c57d0511572cc457be3b40ad6505bab1c27fe Mon Sep 17 00:00:00 2001 From: Sheen Capadngan Date: Mon, 16 Sep 2024 21:35:45 +0800 Subject: [PATCH] misc: allow direct project assignment even with group access --- backend/src/server/routes/index.ts | 1 - backend/src/services/org/org-service.ts | 10 ++-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/backend/src/server/routes/index.ts b/backend/src/server/routes/index.ts index f0675dff5..60e84203f 100644 --- a/backend/src/server/routes/index.ts +++ b/backend/src/server/routes/index.ts @@ -493,7 +493,6 @@ export const registerRoutes = async ( orgRoleDAL, permissionService, orgDAL, - userGroupMembershipDAL, projectBotDAL, incidentContactDAL, tokenService, diff --git a/backend/src/services/org/org-service.ts b/backend/src/services/org/org-service.ts index c0a640112..1ce854ac0 100644 --- a/backend/src/services/org/org-service.ts +++ b/backend/src/services/org/org-service.ts @@ -17,7 +17,6 @@ import { } from "@app/db/schemas"; import { TProjects } from "@app/db/schemas/projects"; import { TGroupDALFactory } from "@app/ee/services/group/group-dal"; -import { TUserGroupMembershipDALFactory } from "@app/ee/services/group/user-group-membership-dal"; import { TLicenseServiceFactory } from "@app/ee/services/license/license-service"; import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service"; @@ -90,7 +89,6 @@ type TOrgServiceFactoryDep = { >; projectUserAdditionalPrivilegeDAL: Pick; projectRoleDAL: Pick; - userGroupMembershipDAL: Pick; projectBotDAL: Pick; projectUserMembershipRoleDAL: Pick; }; @@ -116,7 +114,6 @@ export const orgServiceFactory = ({ licenseService, projectRoleDAL, samlConfigDAL, - userGroupMembershipDAL, projectBotDAL, projectUserMembershipRoleDAL }: TOrgServiceFactoryDep) => { @@ -617,7 +614,6 @@ export const orgServiceFactory = ({ } const userIds = users.map(({ id }) => id); - const usernames = users.map((el) => el.username); const userEncryptionKeys = await userDAL.findUserEncKeyByUserIdsBatch({ userIds }, tx); // we don't need to spam with email. Thus org invitation doesn't need project invitation again const userIdsWithOrgInvitation = new Set(mailsForOrgInvitation.map((el) => el.userId)); @@ -644,12 +640,10 @@ export const orgServiceFactory = ({ { tx } ); const existingMembersGroupByUserId = groupBy(existingMembers, (i) => i.userId); - const userIdsToExcludeAsPartOfGroup = new Set( - await userGroupMembershipDAL.findUserGroupMembershipsInProject(usernames, projectId, tx) - ); const userWithEncryptionKeyInvitedToProject = userEncryptionKeys.filter( - (user) => !existingMembersGroupByUserId?.[user.userId] && !userIdsToExcludeAsPartOfGroup.has(user.userId) + (user) => !existingMembersGroupByUserId?.[user.userId] ); + // eslint-disable-next-line no-continue if (!userWithEncryptionKeyInvitedToProject.length) continue;