From 5a463938d5ec8b2f1666d66fdd4c39f9e5f1fbab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 8 Jan 2025 10:43:03 +0100 Subject: [PATCH] fix: adopt multiple hotel codes --- src/Security/Voter/DispositionVoter.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Security/Voter/DispositionVoter.php b/src/Security/Voter/DispositionVoter.php index 45ed09f..e1a9c7b 100644 --- a/src/Security/Voter/DispositionVoter.php +++ b/src/Security/Voter/DispositionVoter.php @@ -2,8 +2,6 @@ namespace App\Security\Voter; -use App\BusProNet\DataProvider\HotelDataProvider; -use App\BusProNet\Model\Hotel; use App\Entity\Disposition; use App\Entity\User; use Symfony\Bundle\SecurityBundle\Security; @@ -19,10 +17,8 @@ class DispositionVoter extends Voter public const INVOICE = 'INVOICE'; public const FEEDBACK = 'FEEDBACK'; - public function __construct( - private readonly Security $security, - private readonly HotelDataProvider $hotelDataProvider - ) { + public function __construct(private readonly Security $security) + { } protected function supports(string $attribute, mixed $subject): bool @@ -70,15 +66,15 @@ class DispositionVoter extends Voter return false; } - $userHotelCode = $token->getUser()->getHotelCode(); + /** @var User $user */ + $user = $token->getUser(); $destination = $disposition ->getAssignment() ->getDestination() ; - $isMatchingHotel = str_starts_with($destination->getHotelCode(), $userHotelCode) - || str_ends_with($destination->getHotelCode(), $userHotelCode); + $isMatchingHotel = $user->hasHotelCodeMatch($destination->getHotelCode()); $isPast = $destination->getDateTo() < new \DateTimeImmutable(); return $isMatchingHotel && $isPast;