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?
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?
Respuestas:
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:
- Permitir a los usuarios iniciar sesión utilizando su nombre de usuario o su dirección de correo electrónico.
- Permitir a los usuarios iniciar sesión de inmediato.
- Proporcionar un formulario de inicio de sesión en las páginas de acceso denegado para los usuarios no registrados (anónimos).
- 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.
- personalice el formulario de registro con dos campos de correo electrónico para garantizar la precisión.
- opcionalmente, redirija al usuario a una página específica cuando use la función 'inicio de sesión inmediato'.
- opcionalmente redirige al usuario a una página específica tras la validación de su dirección de correo electrónico.
- opcionalmente muestra un mensaje de usuario que indica un inicio de sesión exitoso.
- opcionalmente combine el formulario de inicio de sesión y el de registro en una página.
- 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).
- 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.
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 ".
"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í:
Condiciones:
Parameter: User: [site:current-user], Roles: anonymous user
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?
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í:
configure
enlace " " 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.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.
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:
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.
En la pestaña "Roles", marque "usuario anónimo" para el bloque Mostrar configuración de roles específicos.
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?