Me gustaría redirigir programáticamente a mis usuarios a la página predeterminada de "acceso restringido". Sé que necesito un objeto "RedirectResponse" para una redirección simple, pero ¿cómo especifico aquí la página predeterminada de "acceso restringido"?
12
return new Response('', Response::HTTP_FORBIDDEN);
Respuestas:
Puede lanzar una excepción en cualquier punto de su código:
403:
404:
La excepción es detectada por DefaultExceptionHtmlSubscriber y se devuelve una subrequest para
/system/403
o que/system/404
se devuelve, que puede configurar en la configuración básica del sitio si no desea mostrar una página genérica de "acceso denegado" o "no encontrado".Otras opciones dependen de dónde se coloca el código:
Devuelve una respuesta 403 o 404 de un controlador o un formulario
Establezca una respuesta en un evento si está suscrito a un evento.
Lo que nunca debe hacer es enviar una respuesta directamente. Esto no detiene el código y produce dos respuestas, una que ha enviado y otra devuelta por el núcleo de Drupal. Esto dará como resultado un comportamiento impredecible.
fuente
Esta parece ser la forma correcta:
fuente
Cree su redirección desde la ruta de acceso denegado del sistema.
Esto lo lleva a la página de acceso denegado de Drupal estándar. La ruta se define
system.routing.yml
en el núcleo.La respuesta principal le dará un acceso denegado basado en el acceso denegado, que puede ser lo que está buscando. Si desea que se muestre su IU de Drupal, use lo anterior.
fuente
Desde una página, puede usar:
como: http://www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
O de un de enviar:
Luego configure el permiso de acceso de 'your.module.route.name'
Si no sabe cómo configurar el permiso de acceso, consulte: http://www.drupal8.ovh/en/tutoriels/66/create-a-custom-permission-drupal-8
fuente