@@ -29,7 +29,7 @@ public function __construct(UserService $userService)
2929 $ this ->userService = $ userService ;
3030 }
3131
32- public function deleteOrganization (Organization $ organization , bool $ inTransaction = true ): void
32+ public function deleteOrganization (Organization $ organization , bool $ inTransaction = true , ? User $ ignoreUser = null ): void
3333 {
3434 if ($ inTransaction ) {
3535 DB ::transaction (function () use ($ organization ) {
@@ -85,8 +85,11 @@ public function deleteOrganization(Organization $organization, bool $inTransacti
8585 ->get ();
8686 $ organization ->users ()->sync ([]);
8787
88- // Make sure all users have at least one organization
88+ // Make sure all users have at least one organization and delete placeholders
8989 foreach ($ users as $ user ) {
90+ if ($ ignoreUser !== null && $ user ->is ($ ignoreUser )) {
91+ continue ;
92+ }
9093 if ($ user ->is_placeholder ) {
9194 $ user ->delete ();
9295 } else {
@@ -140,9 +143,7 @@ public function deleteUser(User $user, bool $inTransaction = true): void
140143 /** @var Member $member */
141144 foreach ($ members as $ member ) {
142145 if ($ member ->role === Role::Owner->value ) {
143- // Note: The member needs to be deleted first, otherwise the organization delete function will recreate a new personal organization for the user
144- $ member ->delete ();
145- $ this ->deleteOrganization ($ member ->organization , false );
146+ $ this ->deleteOrganization ($ member ->organization , false , $ user );
146147 } else {
147148 $ this ->userService ->makeMemberToPlaceholder ($ member );
148149 }
0 commit comments