feat: fixed cleanup on leaving root and api issue in frontend

This commit is contained in:
=
2025-10-21 23:29:19 +05:30
parent bd57640313
commit 8a1b572813
5 changed files with 22 additions and 18 deletions
@@ -57,6 +57,7 @@ type TScimServiceFactoryDep = {
TOrgDALFactory,
| "createMembership"
| "findById"
| "find"
| "findMembership"
| "findMembershipWithScimFilter"
| "deleteMembershipById"
@@ -40,7 +40,7 @@ import { newProjectMembershipUserFactory } from "./project/project-membership-us
type TMembershipUserServiceFactoryDep = {
membershipUserDAL: TMembershipUserDALFactory;
membershipRoleDAL: Pick<TMembershipRoleDALFactory, "insertMany" | "delete">;
orgDAL: Pick<TOrgDALFactory, "findById" | "transaction">;
orgDAL: Pick<TOrgDALFactory, "findById" | "transaction" | "find">;
roleDAL: Pick<TRoleDALFactory, "find">;
userDAL: TUserDALFactory;
permissionService: Pick<
@@ -405,7 +405,7 @@ export const membershipUserServiceFactory = ({
const membershipDoc = await membershipUserDAL.transaction(async (tx) => {
if (dto.scopeData.scope === AccessScope.Organization) {
const [doc] = await deleteOrgMembershipsFn({
orgMembershipIds: [],
orgMembershipIds: [existingMembership.id],
orgId: dto.permission.orgId,
orgDAL,
projectKeyDAL,
+6 -13
View File
@@ -13,7 +13,7 @@ import { TMembershipUserDALFactory } from "../membership-user/membership-user-da
type TDeleteOrgMemberships = {
orgMembershipIds: string[];
orgId: string;
orgDAL: Pick<TOrgDALFactory, "transaction">;
orgDAL: Pick<TOrgDALFactory, "transaction" | "find">;
userGroupMembershipDAL: Pick<TUserGroupMembershipDALFactory, "delete">;
membershipUserDAL: Pick<TMembershipUserDALFactory, "delete" | "find">;
membershipRoleDAL: Pick<TMembershipRoleDALFactory, "delete">;
@@ -34,19 +34,9 @@ export const deleteOrgMembershipsFn = async ({
userId,
membershipUserDAL,
userGroupMembershipDAL,
membershipRoleDAL,
additionalPrivilegeDAL
}: TDeleteOrgMemberships) => {
const deletedMemberships = await orgDAL.transaction(async (tx) => {
await membershipRoleDAL.delete(
{
$in: {
membershipId: orgMembershipIds
}
},
tx
);
const orgMemberships = await membershipUserDAL.delete(
{
scopeOrgId: orgId,
@@ -83,12 +73,13 @@ export const deleteOrgMembershipsFn = async ({
);
// Get all the project memberships of the users in the organization
const childOrgs = await orgDAL.find({ rootOrgId: orgId }, { tx });
// Delete all the project memberships of the users in the organization
const otherMemberships = await membershipUserDAL.delete(
{
scopeOrgId: orgId,
$in: {
scopeOrgId: [orgId].concat(childOrgs.map((el) => el.id)),
actorUserId: membershipUserIds
}
},
@@ -96,7 +87,9 @@ export const deleteOrgMembershipsFn = async ({
);
const orgGroups = await membershipUserDAL.find({
scopeOrgId: orgId,
$in: {
scopeOrgId: [orgId].concat(childOrgs.map((el) => el.id))
},
$notNull: ["actorGroupId"]
});