diff --git a/src/Service/UserService.php b/src/Service/UserService.php index 7963d63..c4a2dfd 100644 --- a/src/Service/UserService.php +++ b/src/Service/UserService.php @@ -3,6 +3,7 @@ namespace App\Service; +use App\Entity\Organizations; use App\Entity\Roles; use App\Entity\User; use App\Entity\UserOrganizatonApp; @@ -88,10 +89,10 @@ class UserService if (!$skipSelfCheck && $user->getUserIdentifier() === $this->security->getUser()->getUserIdentifier()) { return true; } - $userOrganization = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user]); - if ($userOrganization) { - foreach ($userOrganization as $uo) { - if ($this->isAdminOfOrganization($uo)) { + $userOrganizations = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user]); + if ($userOrganizations) { + foreach ($userOrganizations as $uo) { + if ($this->isAdminOfOrganization($uo->getOrganization())) { return true; } } @@ -113,10 +114,10 @@ class UserService * @return bool * @throws Exception */ - public function isAdminOfOrganization(UsersOrganizations $usersOrganizations): bool + public function isAdminOfOrganization(Organizations $organizations): bool { $actingUser = $this->getUserByIdentifier($this->security->getUser()->getUserIdentifier()); - $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findOneBy(['users' => $actingUser]); + $uo = $this->entityManager->getRepository(UsersOrganizations::class)->findOneBy(['users' => $actingUser, 'organization' => $organizations]); $roleAdmin = $this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN']); if ($uo) { $uoa = $this->entityManager->getRepository(UserOrganizatonApp::class)->findOneBy(['userOrganization' => $uo,