From 0e49a5cf99e955f0ba71eb0c1f12720dfd536153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Thu, 24 Apr 2025 20:58:05 +0200 Subject: [PATCH] fix: take voter attribute into account --- src/Security/Voter/BookingVoter.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Security/Voter/BookingVoter.php b/src/Security/Voter/BookingVoter.php index 99262de..b8a742e 100644 --- a/src/Security/Voter/BookingVoter.php +++ b/src/Security/Voter/BookingVoter.php @@ -3,7 +3,7 @@ namespace App\Security\Voter; use App\BusProNet\Model\Booking; -use App\BusProNet\Security\User; +use App\Entity\User; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authorization\Voter\Voter; @@ -23,20 +23,24 @@ class BookingVoter extends Voter protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool { - /** @var User $bpnUser */ - $bpnUser = $token->getUser(); + /** @var User $user */ + $user = $token->getUser(); - if (null === $bpnUser) { + if (null === $user) { return false; } /** @var Booking $booking */ $booking = $subject; - if ($booking->applicant->personId !== $bpnUser->getPersonId()) { + if ($booking->applicant->personId !== $user->getPersonId()) { return false; } + if (static::VIEW === $attribute) { + return true; + } + return $booking->isEditable(); } }