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}