mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-12 05:29:16 +00:00
feat: fixed cleanup on leaving root and api issue in frontend
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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"]
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user