diff --git a/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php b/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php
index 8d7adfcfbc..c06c965a12 100644
--- a/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php
+++ b/src/Sylius/Bundle/AdminBundle/Action/ResendOrderConfirmationEmailAction.php
@@ -25,6 +25,7 @@ use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
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;
@@ -35,6 +36,7 @@ final class ResendOrderConfirmationEmailAction
private OrderEmailManagerInterface|ResendOrderConfirmationEmailDispatcherInterface $orderEmailManager,
private CsrfTokenManagerInterface $csrfTokenManager,
private RequestStack|SessionInterface $requestStackOrSession,
+ private ?RouterInterface $router = null,
) {
if ($this->requestStackOrSession instanceof SessionInterface) {
trigger_deprecation(
@@ -63,6 +65,16 @@ final class ResendOrderConfirmationEmailAction
'The argument name $orderEmailManager is deprecated and will be renamed to $resendOrderConfirmationEmailDispatcher in Sylius 2.0.',
);
}
+
+ if (null === $this->router) {
+ trigger_deprecation(
+ 'sylius/admin-bundle',
+ '1.14',
+ 'Passing null as constructor argument for $router in %s is deprecated and will be prohibited in Sylius 2.0. Pass an instance of %s instead.',
+ self::class,
+ RouterInterface::class,
+ );
+ }
}
public function __invoke(Request $request): Response
@@ -88,7 +100,7 @@ final class ResendOrderConfirmationEmailAction
->add('success', 'sylius.email.order_confirmation_resent')
;
- return new RedirectResponse($request->headers->get('referer'));
+ return $this->redirect($request);
}
private function sendConfirmationEmailOrDispatchResendOrderConfirmation(OrderInterface $order): void
@@ -99,4 +111,15 @@ final class ResendOrderConfirmationEmailAction
$this->orderEmailManager->dispatch($order);
}
}
+
+ private function redirect(Request $request): RedirectResponse
+ {
+ if (null === $this->router) {
+ return new RedirectResponse($request->headers->get('referer'));
+ }
+
+ $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 e3467ce1b8..70a6650f86 100644
--- a/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php
+++ b/src/Sylius/Bundle/AdminBundle/Menu/CustomerShowMenuBuilder.php
@@ -72,7 +72,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 726ef516bc..b7dbafd724 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/locale.yml
@@ -23,5 +23,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 cace218010..b3cbb853f8 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/order.yml
@@ -73,7 +73,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
@@ -91,7 +91,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
@@ -108,7 +111,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:
@@ -126,7 +132,7 @@ sylius_admin_order_shipment_ship:
state_machine:
graph: sylius_shipment
transition: ship
- redirect: referer
+ redirect: sylius_admin_order_show
section: admin
permission: true
form: Sylius\Bundle\ShippingBundle\Form\Type\ShipmentShipType
@@ -141,3 +147,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 8d90555e73..0e1d783768 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.yml b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product.yml
index 969e42d0e2..351c31fa11 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product.yml
@@ -38,7 +38,7 @@ sylius_admin_product_update:
_sylius:
section: admin
permission: true
- redirect: referer
+ redirect: sylius_admin_product_update
repository:
method: findOneByIdHydrated
arguments: $id
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 6594d37956..82072c4270 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_review.yml
@@ -26,7 +26,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:
@@ -39,5 +39,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 971c8f68eb..989169b9bd 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/product_variant.yml
@@ -78,7 +78,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
@@ -91,7 +93,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 0828e9b6fe..e0e6bedcf8 100644
--- a/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml
+++ b/src/Sylius/Bundle/AdminBundle/Resources/config/routing/promotion_coupon.yml
@@ -86,7 +86,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:
@@ -100,5 +102,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 1a23f19849..1f619f7f94 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\ShippingBundle\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 b5b0b67099..d2aab3a829 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/CoreBundle/Controller/ProductTaxonController.php b/src/Sylius/Bundle/CoreBundle/Controller/ProductTaxonController.php
index ec3daefcc4..55642b91f8 100644
--- a/src/Sylius/Bundle/CoreBundle/Controller/ProductTaxonController.php
+++ b/src/Sylius/Bundle/CoreBundle/Controller/ProductTaxonController.php
@@ -69,7 +69,7 @@ class ProductTaxonController extends ResourceController
$productTaxonsPositions = $request->request->all('productTaxons');
if (!$this->shouldProductsPositionsBeUpdated($request, $productTaxonsPositions)) {
- return $this->redirectHandler->redirectToReferer($configuration);
+ return $this->redirectHandler->redirectToIndex($configuration);
}
$maxPosition = $this->getMaxPosition($productTaxonsPositions);
@@ -81,10 +81,10 @@ class ProductTaxonController extends ResourceController
$session = $request->getSession();
$session->getFlashBag()->add('error', $exception->getMessage());
- return $this->redirectHandler->redirectToReferer($configuration);
+ return $this->redirectHandler->redirectToIndex($configuration);
}
- return $this->redirectHandler->redirectToReferer($configuration);
+ return $this->redirectHandler->redirectToIndex($configuration);
}
/** @param array $productTaxonPositions */
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}