diff --git a/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php b/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php index 5a1b57b77d..5c21ed14f9 100644 --- a/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php +++ b/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php @@ -23,6 +23,7 @@ use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; +use Symfony\Component\Routing\RouterInterface; use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; @@ -33,6 +34,7 @@ final readonly class ResendOrderConfirmationEmailAction private ResendOrderConfirmationEmailDispatcherInterface $resendOrderConfirmationEmailDispatcher, private CsrfTokenManagerInterface $csrfTokenManager, private RequestStack $requestStack, + private RouterInterface $router, ) { } @@ -59,6 +61,13 @@ final readonly class ResendOrderConfirmationEmailAction ->add('success', 'sylius.email.order_confirmation_resent') ; - return new RedirectResponse($request->headers->get('referer')); + return $this->redirect($request); + } + + private function redirect(Request $request): RedirectResponse + { + $redirect = $request->attributes->get('_sylius', [])['redirect'] ?? 'referer'; + + return new RedirectResponse($this->router->generate($redirect)); } } diff --git a/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php b/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php index de00e5785c..8ca13ff05e 100644 --- a/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php +++ b/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php @@ -73,7 +73,10 @@ final class CustomerShowMenuBuilder $menu ->addChild('user_delete', [ 'route' => 'sylius_admin_shop_user_delete', - 'routeParameters' => ['id' => $customer->getUser()->getId()], + 'routeParameters' => [ + 'id' => $customer->getUser()->getId(), + 'customerId' => $customer->getId(), + ], ]) ->setAttribute('type', 'delete') ->setAttribute('resource_id', $customer->getUser()->getId()) diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml index 1692fa5e7c..c82d965ea7 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml @@ -25,5 +25,5 @@ sylius_admin_locale_delete: _controller: sylius.controller.locale::deleteAction _sylius: section: admin - redirect: referer + redirect: sylius_admin_locale_index permission: true diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml index 44a0b6daef..13da6630c4 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml @@ -76,7 +76,7 @@ sylius_admin_order_cancel: state_machine: graph: sylius_order transition: cancel - redirect: referer + redirect: sylius_admin_order_show sylius_admin_order_payment_complete: path: /orders/{orderId}/payments/{id}/complete @@ -94,7 +94,10 @@ sylius_admin_order_payment_complete: state_machine: graph: sylius_payment transition: complete - redirect: referer + redirect: + route: sylius_admin_order_show + parameters: + id: $orderId sylius_admin_order_payment_refund: path: /orders/{orderId}/payments/{id}/refund @@ -111,7 +114,10 @@ sylius_admin_order_payment_refund: state_machine: graph: sylius_payment transition: refund - redirect: referer + redirect: + route: sylius_admin_order_show + parameters: + id: $orderId flash: sylius.payment.refunded sylius_admin_order_shipment_ship: @@ -129,7 +135,10 @@ sylius_admin_order_shipment_ship: state_machine: graph: sylius_shipment transition: ship - redirect: referer + redirect: + route: sylius_admin_order_show + parameters: + id: $orderId section: admin permission: true form: Sylius\Bundle\AdminBundle\Form\Type\ShipmentShipType @@ -144,3 +153,5 @@ sylius_admin_order_resend_confirmation_email: methods: [GET] defaults: _controller: Sylius\Bundle\AdminBundle\Action\ResendOrderConfirmationEmailAction + _sylius: + redirect: sylius_admin_order_show diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/payment.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/payment.yml index 6b09a2cbd6..7836913aa2 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/payment.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/payment.yml @@ -25,5 +25,5 @@ sylius_admin_payment_complete: state_machine: graph: sylius_payment transition: complete - redirect: referer + redirect: sylius_admin_payment_index flash: sylius.payment.completed diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml index 43e588f756..90526fbd4d 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml @@ -28,7 +28,7 @@ sylius_admin_product_review_accept: state_machine: graph: sylius_product_review transition: accept - redirect: referer + redirect: sylius_admin_product_review_index flash: sylius.review.accept sylius_admin_product_review_reject: @@ -41,5 +41,5 @@ sylius_admin_product_review_reject: state_machine: graph: sylius_product_review transition: reject - redirect: referer + redirect: sylius_admin_product_review_index flash: sylius.review.reject diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml index e687d754a0..e72de765a0 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml @@ -72,7 +72,9 @@ sylius_admin_product_variant_bulk_delete: _controller: sylius.controller.product_variant::bulkDeleteAction _sylius: section: admin - redirect: referer + redirect: + route: sylius_admin_product_variant_index + parameters: { productId: $productId } permission: true repository: method: findById @@ -85,7 +87,9 @@ sylius_admin_product_variant_delete: _controller: sylius.controller.product_variant::deleteAction _sylius: section: admin - redirect: referer + redirect: + route: sylius_admin_product_variant_index + parameters: { productId: $productId } permission: true repository: method: findOneByIdAndProductId diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml index 9a18a1c456..da721c7648 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml @@ -80,7 +80,9 @@ sylius_admin_promotion_coupon_bulk_delete: _controller: sylius.controller.promotion_coupon::bulkDeleteAction _sylius: section: admin - redirect: referer + redirect: + route: sylius_admin_promotion_coupon_index + parameters: { promotionId: $promotionId } permission: true paginate: false repository: @@ -94,5 +96,7 @@ sylius_admin_promotion_coupon_delete: _controller: sylius.controller.promotion_coupon::deleteAction _sylius: section: admin - redirect: referer + redirect: + route: sylius_admin_promotion_coupon_index + parameters: { promotionId: $promotionId } permission: true diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shipment.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shipment.yml index c223454cbf..ecf6ad0199 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shipment.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shipment.yml @@ -25,7 +25,7 @@ sylius_admin_shipment_ship: state_machine: graph: sylius_shipment transition: ship - redirect: referer + redirect: sylius_admin_shipment_index flash: sylius.shipment.shipped form: Sylius\Bundle\AdminBundle\Form\Type\ShipmentShipType diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shop_user.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shop_user.yml index 619d51a97a..da13b43e3f 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shop_user.yml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/shop_user.yml @@ -5,5 +5,7 @@ sylius_admin_shop_user_delete: _controller: sylius.controller.shop_user::deleteAction _sylius: section: admin - redirect: referer + redirect: + route: sylius_admin_customer_show + parameters: { id: $customerId } permission: true diff --git a/src/Sylius/Bundle/AdminBundle/Resources/config/services/controller.xml b/src/Sylius/Bundle/AdminBundle/Resources/config/services/controller.xml index d645581a5c..2da7e78f39 100644 --- a/src/Sylius/Bundle/AdminBundle/Resources/config/services/controller.xml +++ b/src/Sylius/Bundle/AdminBundle/Resources/config/services/controller.xml @@ -47,6 +47,7 @@ + diff --git a/src/Sylius/Bundle/ShopBundle/Controller/ContactController.php b/src/Sylius/Bundle/ShopBundle/Controller/ContactController.php index 9d409ab1f7..d7b2776a6e 100644 --- a/src/Sylius/Bundle/ShopBundle/Controller/ContactController.php +++ b/src/Sylius/Bundle/ShopBundle/Controller/ContactController.php @@ -69,6 +69,8 @@ final class ContactController $contactEmail = $channel->getContactEmail(); + $redirectRoute = $this->getSyliusAttribute($request, 'redirect', 'referer'); + if (null === $contactEmail) { $errorMessage = $this->getSyliusAttribute( $request, @@ -80,7 +82,7 @@ final class ContactController $flashBag = $request->getSession()->getBag('flashes'); $flashBag->add('error', $errorMessage); - return new RedirectResponse($request->headers->get('referer')); + return new RedirectResponse($this->router->generate($redirectRoute)); } $localeCode = $this->localeContext->getLocaleCode(); @@ -96,8 +98,6 @@ final class ContactController $flashBag = $request->getSession()->getBag('flashes'); $flashBag->add('success', $successMessage); - $redirectRoute = $this->getSyliusAttribute($request, 'redirect', 'referer'); - return new RedirectResponse($this->router->generate($redirectRoute)); } diff --git a/src/Sylius/Bundle/ShopBundle/Resources/config/routing/shop_user.yml b/src/Sylius/Bundle/ShopBundle/Resources/config/routing/shop_user.yml index 4e5eabd4e9..12b2466b02 100644 --- a/src/Sylius/Bundle/ShopBundle/Resources/config/routing/shop_user.yml +++ b/src/Sylius/Bundle/ShopBundle/Resources/config/routing/shop_user.yml @@ -6,6 +6,8 @@ sylius_shop_user_request_verification_token: methods: [POST] defaults: _controller: sylius.controller.shop_user::requestVerificationTokenAction + _sylius: + redirect: sylius_shop_account_dashboard sylius_shop_user_verification: path: /verify/{token}