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

7

Estoy tratando de agregar un formulario de inicio de sesión a la página de acceso denegado, y me pregunto si esto es posible a través de la interfaz de usuario.

¿Alguna sugerencia / idea?

jelly46
fuente
1
Coloque el bloqueo de inicio de sesión en la devolución de llamada de la página 404 y use este módulo drupal.org/project/blocks404 o use este módulo si usa Drupal 7 drupal.org/project/navigation404
Rupesh
Eso es para el error "página no encontrada", no para el "acceso denegado".
kiamlaluno

Respuestas:

4

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

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

  1. Permitir a los usuarios iniciar sesión utilizando su nombre de usuario o su dirección de correo electrónico.
  2. Permitir a los usuarios iniciar sesión de inmediato.
  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 al 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, redirija al usuario a una página específica cuando use la función 'inicio de sesión inmediato'.
  7. opcionalmente redirige 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 de registro en una página.
  10. opcionalmente, elimine del sistema a usuarios no validados 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 diversas 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 Presente formulario de inicio de sesión en acceso denegado (403) que activa / desactiva esta funcionalidad exacta.

Shawn Conn
fuente
El módulo LoginToboggan funcionó de maravilla, tenía que incluir la página 403, pero fue genial, gracias.
jelly46
10

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 y fecha / hora como con los nodos normales.
  • Cualquier texto con formato HTML se puede poner 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 intentaban acceder después de iniciar sesión.
  • Permite redireccionamientos personalizados para 404s.

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

Opción 2: Redireccionar al usuario / iniciar sesión usando 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 una solución que debería funcionar. Sin embargo, podría llevar esto un poco más allá y mejorar la experiencia del usuario AbitMORE. Al usar 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, suponga que la ruta de la página "403 predeterminada" está establecida en "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 un evento 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 roles :Parameter: User: [site:current-user], Roles: anonymous user
    2. NO Comparación de texto -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Acciones: redireccionamiento de página -Parameter: URL: user/login

Si desea hacerlo, incluso podría agregar otra Acción para mostrar también algún mensaje (informativo) en el área de mensajes de Drupal, con algo como "Intentó visitar una página para la que se requiere iniciar sesión ...".

Es cierto que puede requerir que habilite un módulo contribuido adicional ( Reglas ). Pero, como lo indica su creciente popularidad también, 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é hay de mejorar la experiencia del usuario para "Página no encontrada" de manera similar?

Opción 3: Mostrar bloque de inicio de sesión de usuario en 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" (vía admin/structure/block) así:

  • Muestra ese bloque en cualquier región temática que elijas.
  • Use el configureenlace " " a la derecha de ese bloque de inicio de sesión de usuario para establecer la " Configuración de visibilidad " para " Páginas ". Es decir, cambie la opción para " Mostrar bloque en páginas específicas " a " Solo las páginas enumeradas " y especifique la ruta ( my_login_page_with_login_block) dentro del cuadro de texto debajo. Si por alguna razón no desea utilizar una ruta, simplemente especifique node / nid (nid = id del nodo) como la ruta en su lugar.
Pierre.Vriens
fuente
Hola Pierre, esto es de gran ayuda, lo intentaré y te haré saber cómo me llevo. Gracias
jelly46
1
Gracias por los comentarios ... Espero que no olvides algún día "volver" con tus comentarios al respecto (después de que lo hayas probado). Lástima que no haya tal cosa como "recuérdame más tarde" (volver a ello), por ejemplo, implementado usando algo como 'Regulador de Reglas' y / o "Bandera" (como haríamos en Drupal, ¿verdad?). .. Nota para mí: agregar dicha función en la distribución "ArrayShift" ...
Pierre.Vriens
Bueno, ha ampliado mi conocimiento pero aún no ha respondido la pregunta, es de gran ayuda pero aún no ha llegado a la tierra prometida.
jelly46
El módulo LoginToboggan funcionó de
maravilla
1
No hay problema, por supuesto, ¡considérelo como la flexibilidad y las opciones de Drupal para elegir lo que es adecuado para todos individualmente!
Pierre.Vriens
5

Puede agregar configuraciones para '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.

Andrés
fuente
3

Sin el módulo LoginToboggan , se puede configurar el bloque de inicio de sesión de usuario para que sea visible en las páginas designadas y restringido a usuarios anónimos. En el bloque Configuración de visibilidad para el bloque de inicio de sesión de usuario:

  1. En la pestaña "páginas", configure "Mostrar bloque en páginas específicas" en "Solo las páginas enumeradas" e ingrese las páginas.

  2. En la pestaña "Roles", marque "usuario anónimo" para el bloque Mostrar configuración de roles específicos.

MikeSNP
fuente
2

En teoría, podría establecer la página Predeterminada 403 (acceso denegado) en Información del sitio para usuario / inicio de sesión en / admin / config / system / site-information.

¿Nunca lo probaste pero es solo una idea?

Connor Gurney
fuente
1
Mala idea. Los usuarios registrados que obtienen acceso denegado terminan en un bucle de redireccionamiento interminable que provoca la caída del navegador.
Giles B