From 520e6b79f03ef6726b66e84d971dcad11b6221d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Mon, 13 Jan 2025 11:05:10 +0100 Subject: [PATCH] fix: correct access check to provide feedback --- src/Security/Voter/DispositionVoter.php | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/Security/Voter/DispositionVoter.php b/src/Security/Voter/DispositionVoter.php index 9d55788..533e799 100644 --- a/src/Security/Voter/DispositionVoter.php +++ b/src/Security/Voter/DispositionVoter.php @@ -43,24 +43,16 @@ class DispositionVoter extends Voter $disposition = $subject; return match ($attribute) { - static::VIEW, static::EDIT, static::CONTRACT, static::INVOICE => $this->assertAdministrativeAccess() + static::VIEW, static::EDIT, static::CONTRACT, static::INVOICE => + $this->security->isGranted('ROLE_ADMINISTRATIVE') || $this->assertTeamerAccess($token, $disposition), - static::DELETE => $this->assertAdminAccess(), - static::FEEDBACK => $this->assertAdminAccess() || $this->assertHouseManagerAccess($token, $disposition), + static::DELETE => $this->security->isGranted('ROLE_ADMIN'), + static::FEEDBACK => $this->security->isGranted('ROLE_ADMINISTRATIVE') + || $this->assertHouseManagerAccess($token, $disposition), default => false, }; } - private function assertAdminAccess(): bool - { - return $this->security->isGranted('ROLE_ADMIN'); - } - - private function assertAdministrativeAccess(): bool - { - return $this->security->isGranted('ROLE_ADMINISTRATIVE'); - } - private function assertHouseManagerAccess(TokenInterface $token, Disposition $disposition): bool { if (false === $this->security->isGranted('ROLE_HOUSE_MANAGER')) {