Je voudrais rediriger par programme mes utilisateurs vers la page par défaut "accès restreint". Je sais que j'ai besoin d'un objet "RedirectResponse" pour une simple redirection, mais comment puis-je spécifier la page par défaut "accès restreint" ici?
12
return new Response('', Response::HTTP_FORBIDDEN);
Réponses:
Vous pouvez lever une exception à tout moment dans votre code:
403:
404:
L'exception est ensuite interceptée par DefaultExceptionHtmlSubscriber et une sous-demande pour
/system/403
ou/system/404
est renvoyée, que vous pouvez configurer dans les paramètres de base du site si vous ne souhaitez pas afficher une page générique "accès refusé" ou "introuvable".Les autres options dépendent de l'endroit où le code est placé:
Renvoyer une réponse 403 ou 404 à partir d'un contrôleur ou d'un formulaire
Définissez une réponse dans un événement si vous êtes abonné à un événement.
Ce que vous ne devriez jamais faire, c'est envoyer une réponse directement. Cela n'arrête pas le code et produit deux réponses, une que vous avez envoyée et une retournée par le noyau Drupal. Cela entraînera un comportement imprévisible.
la source
Cela semble être la bonne façon:
la source
Créez votre redirection à partir de l'itinéraire d'accès refusé du système.
Cela vous amène à la page d'accès standard Drupal refusée. L'itinéraire est défini dans
system.routing.yml
in core.La première réponse vous donnera un accès refusé basé sur un navigateur, ce qui peut être ce que vous recherchez. Si vous souhaitez que votre interface utilisateur Drupal s'affiche, utilisez ce qui précède.
la source
À partir d'une page, vous pouvez utiliser:
comme: http://www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
Ou à partir d'une soumission:
Ensuite, configurez l'autorisation d'accès de «your.module.route.name»
Si vous ne savez pas comment configurer la permission d'accès, consultez: http://www.drupal8.ovh/en/tutoriels/66/create-a-custom-permission-drupal-8
la source