From b25330b60722c276da26c94c831b59ac125cab84 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:19:20 +0100 Subject: [PATCH] fix: soft delete user when removing last userWorkspace (#9741) ### Context User (who has create a workspace and deleted it) can't create new workspace because after deleting his previous workspace, user has not been soft deleted. There is several cases where user should be soft deleted : 1/ if user delete his account 2/ if a user's workspace is deleted + user has no other workspace 3/ If a workspaceMember is removed + user has no other workspace ### Solution In `handleRemoveWorkspaceMember` method (logic used in the 3 cases), soft delete user when removing the last userWorkspace closes #9728 Co-authored-by: etiennejouan --- .../workspace/services/workspace.service.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts b/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts index dd20c1670..46bf66260 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts @@ -159,6 +159,16 @@ export class WorkspaceService extends TypeOrmQueryService { userId, workspaceId, }); + + const userWorkspaces = await this.userWorkspaceRepository.find({ + where: { + userId, + }, + }); + + if (userWorkspaces.length === 0) { + await this.userRepository.softDelete(userId); + } } async isSubdomainAvailable(subdomain: string) {