From e0055698a10dac73fd696345e7ad0b18f734d3d9 Mon Sep 17 00:00:00 2001 From: Aina Sitraka <35221835+aynsix@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:59:26 +0300 Subject: [PATCH] PHRAS-3694 fix clean usrlist (#4240) --- lib/Alchemy/Phrasea/Model/Manager/UserManager.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/Alchemy/Phrasea/Model/Manager/UserManager.php b/lib/Alchemy/Phrasea/Model/Manager/UserManager.php index 69539d801d..691137e75c 100644 --- a/lib/Alchemy/Phrasea/Model/Manager/UserManager.php +++ b/lib/Alchemy/Phrasea/Model/Manager/UserManager.php @@ -12,6 +12,7 @@ namespace Alchemy\Phrasea\Model\Manager; use Alchemy\Phrasea\Model\Entities\ApiLog; +use Alchemy\Phrasea\Model\Entities\UsrList; use Alchemy\Phrasea\Model\Entities\UsrListOwner; use Doctrine\Common\Persistence\ObjectManager; use Alchemy\Phrasea\Model\Entities\User; @@ -179,7 +180,15 @@ class UserManager /** @var UsrListOwner $listOwner */ foreach ($listOwners as $listOwner) { - $this->objectManager->remove($listOwner->getList()); + $usrList = $listOwner->getList(); + $listOwnersAdmin = $this->objectManager->getRepository('Phraseanet:UsrListOwner') + ->findBy(['list' => $usrList, 'role' => '3']); + + // there are only one administrator owner and it is the user + if (count($listOwnersAdmin) == 1 && $listOwnersAdmin[0]->getUser()->getId() === $user->getId()) { + $this->objectManager->remove($usrList); + } + $this->objectManager->remove($listOwner); }