Saltar al contenido

Drupal – ¿Cómo agregar un formulario de inicio de sesión a la página Acceso denegado?

Solución:

Opción 1: usar el módulo CustomError

El módulo CustomError permite al administrador del sitio crear páginas de error personalizadas para los códigos de estado HTTP 403 (acceso denegado) y 404 (no encontrado), sin la necesidad de crear nodos para cada uno de ellos. Algunos detalles más sobre sus características (de su página de proyecto):

  • Título de página configurable y descripciones.
  • No hay encabezados de autor ni de fecha / hora como con los nodos normales.
  • Cualquier texto con formato HTML se puede colocar en el cuerpo de la página.
  • Las páginas de error son temáticas.
  • Los usuarios que no hayan iniciado sesión e intenten acceder a un área que requiere inicio de sesión serán redirigidos a la página a la que intentaron acceder después de iniciar sesión.
  • Permite redireccionamientos personalizados para 404.

Debería estar interesado en la parte sobre “Los usuarios que no hayan iniciado sesión e intenten acceder a un área que requiere inicio de sesión serán redirigidos a la página a la que intentaron acceder después de iniciar sesión.“.

Opción 2: Redirigir al usuario / iniciar sesión mediante el módulo Reglas

“Agregar configuraciones para la ‘página de acceso denegado’ y mostrar el bloque ‘Inicio de sesión de usuario’ en esa página” es de hecho una solución que debería funcionar. Sin embargo, podría dar un paso más y mejorar la experiencia del usuario AbitMORE. Mediante el uso de una variación del enfoque descrito en la respuesta a la pregunta sobre “¿Cómo redirigir a los usuarios anónimos a la página de inicio de sesión utilizando el módulo Reglas?”.

Para hacerlo, asuma que la ruta de la página “Default 403” está configurada como “no_access” (a través de /admin/config/system/site-information, cerca de la parte inferior de esa página de administración). Luego cree una regla usando el módulo Reglas, con como Evento algo como “Después de visitar el nodo ‘no_access'”. Para que toda la regla se vea así:

  • Eventos: Después de visitar el nodo ‘no_access’
  • Condiciones:

    1. El usuario tiene rol (s)Parameter: User: [site:current-user], Roles: anonymous user
    2. NO Comparación de textoParameter: Text: [site:current-page:url], Matching text: user/login
  • Comportamiento: Redireccionamiento de páginaParameter: URL: user/login

Si lo desea, puede incluso agregar otro Acción para mostrar también algún mensaje (informativo) en el área de mensajes de Drupal, con algo como “Intentaste visitar una página para la que se requiere iniciar sesión …”.

Es cierto que es posible que deba habilitar un módulo de contribución adicional (Reglas). Pero, como también lo indica su creciente popularidad, ese módulo probablemente ya esté habilitado en casi cualquier sitio (similar al módulo Vistas), porque hay docenas de casos de uso para este módulo. Solo una variación de esta pregunta: ¿qué tal mejorar la experiencia del usuario para “Página no encontrada” de una manera similar?

Opción 3: Mostrar el bloqueo de inicio de sesión del usuario en la página dedicada

Otra variación, como alternativa a las Reglas “Acción” (para redirigir a user/login), es crear algún nodo designado, digamos con una ruta como “my_login_page_with_login_block”. Y luego combine esto con la configuración del bloque “Inicio de sesión de usuario” (a través de admin/structure/block) al igual que:

  • Muestre ese bloque en la región temática que elija.
  • Utilizar el “configure“enlace a la derecha de ese bloque de inicio de sesión de usuario, para establecer el”Configuración de visibilidad” por “Paginas“. Es decir, cambie la opción por”Mostrar bloque en páginas específicas” para “Solo las páginas enumeradas“y especifique la ruta (my_login_page_with_login_block) dentro del cuadro de texto debajo de él. Si por alguna razón no desea utilizar una ruta, simplemente especifique node / nid (nid = id del nodo) como ruta.

Puede agregar configuraciones para la ‘Página 403 predeterminada (acceso denegado)’ en la configuración del sitio (admin / config / system / site-information). Y luego muestre el bloque ‘Inicio de sesión de usuario’ (admin / structure / block / manage / user / login / configure) en esta página.

Otra solución aquí es el módulo LoginToboggan. Proporciona una serie de mejoras diferentes a la funcionalidad de inicio de sesión.

El módulo logintoboggan ofrece varias modificaciones del sistema de inicio de sesión de drupal en un módulo externo al ofrecer las siguientes características y mejoras de usabilidad:

  1. Permitir que los usuarios inicien sesión utilizando su nombre de usuario o su dirección de correo electrónico.
  2. Permitir que los usuarios inicien sesión inmediatamente.
  3. proporcionar un formulario de inicio de sesión en las páginas de acceso denegado para los usuarios no registrados (anónimos).
  4. el módulo proporciona dos opciones de bloqueo de inicio de sesión: una usa javascript para mostrar el formulario dentro del bloque inmediatamente después de hacer clic en “iniciar sesión”. el otro lleva al usuario a una página separada, pero lo devuelve a su página original al iniciar sesión.
  5. Personalice el formulario de registro con dos campos de correo electrónico para garantizar la precisión.
  6. opcionalmente, redirige al usuario a una página específica cuando se utiliza la función de “inicio de sesión inmediato”.
  7. opcionalmente, redirigir al usuario a una página específica tras la validación de su dirección de correo electrónico.
  8. opcionalmente, muestra un mensaje de usuario que indica un inicio de sesión exitoso.
  9. Opcionalmente, combine el formulario de inicio de sesión y el formulario de registro en una página.
  10. Opcionalmente, elimine a los usuarios no validados del sistema en un intervalo predefinido (lea la sección de advertencias de install.txt para obtener información importante sobre la configuración de esta función).
  11. se integra con el módulo de reglas para realizar varias tareas cuando un usuario valida a través del proceso de validación por correo electrónico (consulte http://drupal.org/node/880904 para ver un ejemplo)

El formulario de configuración de ajustes tiene una opción llamada Presentar formulario de inicio de sesión en el acceso denegado (403) que activa o desactiva esta funcionalidad exacta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *