Gostaria de redirecionar programaticamente meus usuários para a página "acesso restrito" padrão. Sei que preciso de um objeto "RedirectResponse" para um redirecionamento simples, mas como especificar a página "acesso restrito" padrão aqui?
12
return new Response('', Response::HTTP_FORBIDDEN);
Respostas:
Você pode lançar uma exceção em qualquer ponto do seu código:
403:
404:
A exceção é capturada pelo DefaultExceptionHtmlSubscriber e uma sub-solicitação
/system/403
ou/system/404
é retornada, que você pode configurar nas configurações básicas do site, se não desejar exibir uma página genérica de "acesso negado" ou "não encontrado".Outras opções dependem de onde o código é colocado:
Retornar uma resposta 403 ou 404 de um controlador ou formulário
Defina uma resposta em um evento se você estiver em um assinante de evento.
O que você nunca deve fazer é enviar uma resposta diretamente. Isso não interrompe o código e produz duas respostas, uma que você enviou e outra retornada pelo kernel do Drupal. Isso resultará em comportamento imprevisível.
fonte
Este parece ser o caminho certo:
fonte
Crie seu redirecionamento a partir da rota de acesso negado do sistema.
Isso leva você à página de acesso padrão do Drupal negado. A rota é definida
system.routing.yml
no núcleo.A resposta principal fornecerá um acesso negado, baseado no navegador, negado, que pode ser o que você está procurando. Se você deseja que a interface do usuário do Drupal seja exibida, use o acima.
fonte
Em uma página, você pode usar:
como: http://www.drupal8.ovh/en/tutoriels/88/page-redirection-on-drupal-8
Ou a partir de um envio:
Em seguida, configure a permissão de acesso de 'your.module.route.name'
Se você não souber configurar a permissão de acesso, verifique: http://www.drupal8.ovh/en/tutoriels/66/create-a-custom-permission-drupal-8
fonte