Como adicionar o formulário de login à página Acesso negado?


7

Estou tentando adicionar um formulário de login à página de acesso negado e me pergunto se isso é possível através da interface do usuário.

Alguma sugestão / idéia?


11
Lugar Acesso bloco em página 404 callback & Use este módulo drupal.org/project/blocks404 ou usar este módulo se estiver usando Drupal 7 drupal.org/project/navigation404
Rupesh

Isso é para o erro "página não encontrada", não para o "acesso negado".
kiamlaluno

Respostas:


4

Outra solução aqui é o módulo LoginToboggan . Ele fornece vários aprimoramentos diferentes para a funcionalidade de login.

O módulo logintoboggan oferece várias modificações do sistema de login drupal em um módulo externo, oferecendo os seguintes recursos e aprimoramentos de usabilidade:

  1. permita que os usuários efetuem login usando seu nome de usuário ou endereço de email.
  2. permitir que os usuários efetuem login imediatamente.
  3. forneça um formulário de login nas páginas de acesso negado para usuários não conectados (anônimos).
  4. o módulo fornece duas opções de bloqueio de login: um usa javascript para exibir o formulário dentro do bloco imediatamente após clicar em "logon". o outro leva o usuário a uma página separada, mas retorna o usuário à sua página original após o login.
  5. personalize o formulário de registro com dois campos de email para garantir a precisão.
  6. opcionalmente, redirecione o usuário para uma página específica ao usar o recurso 'login imediato'.
  7. opcionalmente, redirecione o usuário para uma página específica após a validação do endereço de email.
  8. opcionalmente, exibir uma mensagem do usuário indicando um login bem-sucedido.
  9. opcionalmente, combine o formulário de login e registro em uma página.
  10. opcionalmente, usuários não validados foram removidos do sistema em um intervalo predefinido (leia a seção de advertências em install.txt para obter informações importantes sobre como configurar esse recurso!).
  11. integra-se ao módulo de regras para executar várias tarefas quando um usuário valida via processo de validação de email (consulte http://drupal.org/node/880904 para obter um exemplo)

O formulário de configuração tem uma opção chamada Apresentar formulário de login no acesso negado (403) que ativa / desativa esta funcionalidade exata.


O módulo LoginToboggan funcionou como um encanto, tinha que incluir a página 403, mas foi super, obrigado.
jelly46

10

Opção 1: Use o módulo CustomError

O módulo CustomError permite que o administrador do site crie páginas de erro personalizadas para os códigos de status HTTP 403 (acesso negado) e 404 (não encontrado), sem a necessidade de criar nós para cada um deles. Mais alguns detalhes sobre seus recursos (na página do projeto):

  • Título da página e descrições configuráveis.
  • Não há cabeçalhos de autor e data / hora, como nos nós normais.
  • Qualquer texto formatado em HTML pode ser inserido no corpo da página.
  • As páginas de erro são permitidas.
  • Os usuários que não estão conectados e tentam acessar uma área que requer login serão redirecionados para a página que estavam tentando acessar após o login.
  • Permite redirecionamentos personalizados para 404s.

Você deve estar interessado na parte sobre " Os usuários que não estão conectados e tentam acessar uma área que requer login será redirecionada para a página que eles estavam tentando acessar após o login ".

Opção 2: Redirecionar para usuário / login usando o módulo Regras

"Adicionar configurações para a 'página de acesso negado' e exibir o bloco 'Login de usuário' nessa página" é realmente uma solução que deve funcionar. No entanto, você pode dar um passo adiante e aprimorar a experiência do usuário AbitMORE. Usando uma variação da abordagem descrita na resposta à pergunta sobre " Como redirecionar usuários anônimos para a página de login usando o módulo Regras? ".

Para fazer isso, suponha que o caminho da página "Padrão 403" esteja definido como "no_access" (via /admin/config/system/site-information, na parte inferior da página de administração). Em seguida, crie uma regra usando o módulo Rules , com como Event algo como "Depois de visitar o nó 'no_access'". Para que toda a regra fique assim:

  • Eventos: Depois de visitar o nó 'no_access'
  • Condições:

    1. O usuário tem funções -Parameter: User: [site:current-user], Roles: anonymous user
    2. NÃO Comparação de texto -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Ações: redirecionamento de página -Parameter: URL: user/login

Caso deseje fazer isso, você pode até adicionar outra Ação para também exibir alguma mensagem (informativa) na área de mensagens do Drupal, com algo como "Você tentou visitar uma página para a qual o login é necessário ...".

É verdade que pode ser necessário ativar um módulo contribuído extra ( Regras ). Mas, como indicado por sua crescente popularidade também, esse módulo provavelmente já está ativado em praticamente qualquer site (semelhante ao módulo Views ), porque existem dezenas de casos de uso para este módulo. Apenas uma variação desta pergunta: que tal aprimorar a experiência do usuário para "Página não encontrada" de maneira semelhante?

Opção 3: Mostrar bloco de login do usuário na página dedicada

Outra variação, como alternativa às Regras "Ação" (para redirecionar user/login), é criar um nó designado, digamos com um caminho como "my_login_page_with_login_block". E então combine isso com a configuração do bloco "Login de usuário" (via admin/structure/block) da seguinte forma:

  • Exiba esse bloco em qualquer região temática de sua escolha.
  • Use o configurelink " " à direita do bloco de login do usuário, para definir as " Configurações de visibilidade " para " Páginas ". Ou seja, altere a opção " Mostrar bloco em páginas específicas " para " Somente as páginas listadas " e especifique o caminho ( my_login_page_with_login_block) na caixa de texto abaixo. Se, por algum motivo, você não quiser usar um caminho, especifique node / nid (nid = id do nó) como o caminho.

Olá Pierre, esta é uma grande ajuda. Vou tentar isso e informar como eu vou. Graças
jelly46

11
Obrigado pelo feedback ... Espero que você não se esqueça de um dia "voltar" com seu feedback sobre ele (depois de tentar). Pena que não existe algo como "lembrar-me mais tarde" (para voltar a ele), por exemplo, implementado usando algo como 'Rules Scheduler' e / ou "Flag" (como faríamos no Drupal, certo?). .. Nota para mim mesmo: adicione esse recurso na distribuição "ArrayShift" ...
Pierre.Vriens

Bem, ampliou meu conhecimento, mas ainda não respondeu à pergunta, é uma grande ajuda, mas ainda não atingiu a terra prometida.
jelly46

O módulo do Toboggan funcionou como um encanto
jelly46

11
Sem problemas, é claro, vamos considerar a flexibilidade e as opções do Drupal para escolher o que é certo para todos individualmente!
precisa saber é o seguinte

5

Você pode adicionar configurações para 'Página 403 padrão (acesso negado)' na configuração do site (admin / config / system / site-information). E, em seguida, exiba o bloco 'Login de usuário' (admin / estrutura / bloquear / gerenciar / usuário / login / configurar) nesta página.


3

Sem o módulo LoginToboggan , é possível configurar o bloco de login do usuário para ficar visível nas páginas designadas e restrito a usuários anônimos. No bloco Configurações de visibilidade para o bloco de login do usuário:

  1. Na guia "páginas", defina "Mostrar bloco em páginas específicas" como "Somente as páginas listadas" e insira as páginas.

  2. Na guia "Funções", verifique "usuário anônimo" no bloco Mostrar para definir configurações de funções específicas.


2

Em teoria, você pode definir a página Padrão 403 (acesso negado) em Informações do site para usuário / login em / admin / config / system / site-information.

Nunca tentei, mas é apenas uma ideia?


11
Péssima ideia. Os usuários conectados que obtêm acesso negado terminam em um loop de redirecionamento sem fim que causa falha no navegador.
Giles B
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.