diff --git a/src/Synolia/Bundle/StockAlertBundle/Controller/Frontend/StockAlertController.php b/src/Synolia/Bundle/StockAlertBundle/Controller/Frontend/StockAlertController.php index 8b8a72d..4248851 100644 --- a/src/Synolia/Bundle/StockAlertBundle/Controller/Frontend/StockAlertController.php +++ b/src/Synolia/Bundle/StockAlertBundle/Controller/Frontend/StockAlertController.php @@ -5,6 +5,7 @@ namespace Synolia\Bundle\StockAlertBundle\Controller\Frontend; use Doctrine\Persistence\ObjectManager; +use Oro\Bundle\CustomerBundle\Entity\CustomerUser; use Oro\Bundle\LayoutBundle\Attribute\Layout; use Oro\Bundle\ProductBundle\Entity\Product; use Oro\Bundle\SecurityBundle\Attribute\CsrfProtection; @@ -43,6 +44,8 @@ public function setHandler(StockAlertHandler $handler): void #[Route(path: '/form/{productId}', name: 'synolia_frontend_stock_alert_form', methods: ['POST']) ] public function form(Request $request, int $productId): Response { + $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED'); + $product = $this->manager->getRepository(Product::class)->find($productId); $formEntity = new StockAlert(); @@ -83,20 +86,23 @@ public function form(Request $request, int $productId): Response #[Layout(vars: ['entity_class','organization_id','customer_user_id'])] public function indexAction(): array { - $entityClass = StockAlert::class; + $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED'); + + /** @var CustomerUser $user */ + $user = $this->getUser(); return [ - 'entity_class' => $entityClass, - /* @phpstan-ignore-next-line */ - 'organization_id' => $this->getUser()->getOrganization()->getId(), - /* @phpstan-ignore-next-line */ - 'customer_user_id' => $this->getUser()->getId(), + 'entity_class' => StockAlert::class, + 'organization_id' => $user->getOrganization()->getId(), + 'customer_user_id' => $user->getId(), ]; } #[Route(path: '/create/{id}', name: 'synolia_stock_alert_create', requirements: ['id' => '\d+']) ] public function createAction(#[MapEntity(id: 'id')] Product $product): JsonResponse { + $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED'); + try { $stockAlert = $this->handler->create($product); @@ -119,6 +125,8 @@ public function createAction(#[MapEntity(id: 'id')] Product $product): JsonRespo #[CsrfProtection()] public function deleteAction(#[MapEntity(id: 'id')] Product $product): JsonResponse { + $this->denyAccessUnlessGranted('IS_AUTHENTICATED_REMEMBERED'); + try { $this->handler->deleteByProduct($product);