Fix foreign keys and deletion service

This commit is contained in:
Constantin Graf
2024-11-05 11:35:55 +01:00
committed by Constantin Graf
parent 4224fdd57e
commit 3b3f593080
8 changed files with 344 additions and 5 deletions

View File

@@ -144,6 +144,7 @@ class DeletionService
->get();
foreach ($members as $member) {
/** @var Member $member */
if ($member->role === Role::Owner->value && $member->organization->users()->count() > 1) {
throw new CanNotDeleteUserWhoIsOwnerOfOrganizationWithMultipleMembers;
}
@@ -154,10 +155,13 @@ class DeletionService
if ($member->role === Role::Owner->value) {
$this->deleteOrganization($member->organization, false, $user);
} else {
$this->memberService->makeMemberToPlaceholder($member);
$this->memberService->makeMemberToPlaceholder($member, false);
}
}
$user->accessTokens()->delete();
$user->authCodes()->delete();
// Note: Since the deletion of the profile photo is not reversible via a database rollback this needs to be done last
$user->deleteProfilePhoto();