Legal
Muestra los Términos y Condiciones a los usuarios durante el registro y el inicio de sesión, requiriendo su aceptación antes de completar estas acciones.
legal
Install
composer require 'drupal/legal:^3.0'
Overview
El módulo Legal proporciona un sistema integral de gestión de Términos y Condiciones para sitios Drupal. Muestra texto personalizable de T&C en el formulario de registro de usuarios y requiere que los visitantes los acepten antes de completar su registro.
Cuando se crea una nueva versión de los T&C, todos los usuarios deberán aceptar la nueva versión en su próximo inicio de sesión. El módulo admite múltiples formatos de visualización para el contenido de T&C, incluyendo cajas de desplazamiento, texto HTML y enlaces a páginas con diálogos modales opcionales.
El módulo ofrece soporte multilingüe completo, permitiendo diferentes versiones de T&C para cada idioma. También incluye integración con Views con dos vistas preconstruidas para mostrar el historial de T&C y los registros de aceptación de usuarios. Además, ofrece soporte de migración para sitios que se actualizan desde Drupal 7.
El módulo crea dos entidades de contenido personalizadas: una para almacenar las condiciones de T&C y otra para rastrear los registros de aceptación de usuarios. Los administradores también pueden agregar hasta 10 casillas de verificación adicionales requeridas en el formulario de T&C, útiles para verificación de edad u otros acuerdos personalizados.
Features
- Muestra los Términos y Condiciones en el formulario de registro de usuarios con aceptación obligatoria
- Requiere re-aceptación cuando se publican nuevas versiones de T&C
- Múltiples estilos de visualización: Caja de desplazamiento (HTML), Caja de desplazamiento (CSS), Texto HTML y Enlace a página
- Visualización opcional en diálogo modal para el estilo de Enlace a página
- Soporte multilingüe con versiones separadas de T&C por idioma
- Hasta 10 casillas de verificación adicionales personalizadas que los usuarios deben aceptar
- Sistema de seguimiento de versiones y revisiones para el historial de T&C
- Función de explicación de cambios para resaltar qué cambió desde la última versión
- Views integradas para el historial de T&C y seguimiento de aceptación de usuarios
- Sistema de exención para roles de usuario específicos
- Opción de requerir aceptación de T&C en cada inicio de sesión
- Integración con perfil de usuario para mostrar y aceptar T&C
- Soporte de Token para incrustar contenido de T&C
- Soporte de migración desde Drupal 7
- Autenticación segura basada en cookies para el flujo de aceptación en inicio de sesión
Use Cases
Términos y Condiciones básicos para registro de usuarios
Configure T&C que los usuarios deben aceptar durante el registro. Navegue a /admin/config/people/legal, ingrese su texto de T&C, seleccione el estilo de visualización 'Texto HTML' y guarde. Todos los nuevos usuarios deberán aceptar estos términos antes de completar el registro.
Cumplimiento GDPR con verificación de edad
Use casillas de verificación adicionales para agregar consentimiento GDPR y verificación de edad. En la sección 'Casillas de verificación adicionales', agregue etiquetas como 'Tengo al menos 18 años de edad' y 'Consiento el procesamiento de mis datos personales según se describe en la Política de Privacidad'. Los usuarios deben marcar todas las casillas para registrarse.
Gestión de T&C en sitio multilingüe
Para sitios multilingües, cree versiones de T&C en cada idioma. Seleccione el idioma de destino antes de guardar nuevos T&C. Use 'Usuarios del idioma específico (una revisión)' para solo pedir a los usuarios de ese idioma que re-acepten, o 'Todos los usuarios (nueva versión)' para requerir que todos re-acepten.
Forzar re-aceptación en cada inicio de sesión
Para entornos de alto cumplimiento, habilite 'Solicitar aceptar T&C en cada inicio de sesión' en la configuración. Esto asegura que los usuarios confirmen su acuerdo cada vez que acceden al sitio, útil para aplicaciones financieras o de salud.
Eximir al personal de requisitos de T&C
Los miembros del personal con roles administrativos a menudo no necesitan aceptar T&C. En la configuración, marque los roles (como 'administrador' o 'editor') en 'Roles de usuario exentos' para omitir la visualización de T&C para estos usuarios.
Migración desde Drupal 7
Al actualizar desde Drupal 7, los plugins de migración del módulo transferirán automáticamente el contenido de T&C existente y los registros de aceptación de usuarios. Ejecute las migraciones d7_legal_conditions, d7_legal_accepted y d7_legal_settings usando las herramientas de migración de Drupal.
Seguimiento del historial de aceptación de T&C
Monitoree el cumplimiento visitando /admin/config/people/legal/users para ver qué usuarios han aceptado qué versión de T&C. Use la pestaña Historial de T&C para revisar todas las versiones que se han publicado y qué cambios se realizaron.
Tips
- El texto de T&C solo debe ser ingresado por administradores o usuarios de alta confianza ya que el contenido se filtra con filter_xss_admin() que permite la mayoría del HTML
- Use el botón de Vista previa en el formulario de administración para ver exactamente cómo aparecerán sus T&C a los usuarios antes de guardar
- Cada línea en el campo 'Explicar cambios' se convierte en un punto de viñeta separado, facilitando listar múltiples cambios
- La página /legal muestra automáticamente los T&C como texto HTML independientemente del ajuste de estilo de visualización para formularios de registro/inicio de sesión
- Puede insertar T&C programáticamente usando la entidad Conditions - vea el README para un ejemplo de código
- Considere usar el token [legal:tc] en plantillas de correo electrónico para incluir los T&C actuales en correos de bienvenida
Technical Details
Admin Pages 5
/admin/config/people/legal
Página principal de administración para crear y gestionar el contenido de Términos y Condiciones. Muestra la información de la versión actual de T&C y proporciona un formulario para ingresar nuevo texto de T&C.
/admin/config/people/legal/settings
Configure los ajustes generales de cómo se muestran y aplican los Términos y Condiciones en todo el sitio.
/admin/config/people/legal/languages
Vea la última versión de T&C para cada idioma habilitado. Esta página solo es accesible cuando el módulo Language está habilitado.
/admin/config/people/legal/terms_history
Vea un historial completo de todas las versiones de Términos y Condiciones que se han creado, proporcionado por la View legal_terms.
/admin/config/people/legal/users
Vea qué usuarios han aceptado los Términos y Condiciones y qué versión aceptaron, proporcionado por la View legal_users.
Permissions 2
Hooks 9
hook_user_login
Intercepta el inicio de sesión del usuario para verificar si el usuario ha aceptado la última versión de T&C. Si no, cierra la sesión del usuario y redirige a la página de aceptación de T&C.
hook_user_insert
Registra la aceptación de T&C cuando un nuevo usuario se registra y acepta los términos durante el registro.
hook_user_update
Registra la aceptación de T&C cuando un usuario existente acepta nuevos T&C a través de su página de perfil.
hook_form_FORM_ID_alter (user_register_form)
Altera el formulario de registro de usuario para agregar campos de visualización de T&C y casilla de aceptación.
hook_form_FORM_ID_alter (user_form)
Altera el formulario de edición de perfil de usuario para mostrar el estado actual de aceptación de T&C y permitir la re-aceptación.
hook_theme
Define el hook de tema legal_current_metadata para mostrar metadatos de T&C en el formulario de administración.
hook_token_info
Define el token [legal:tc] para incrustar contenido de T&C.
hook_tokens
Proporciona el valor de reemplazo para el token [legal:tc].
hook_help
Proporciona texto de ayuda para el módulo.
Troubleshooting 6
Asegúrese de que se haya ingresado texto de T&C en /admin/config/people/legal. No se mostrarán T&C hasta que se guarde el texto. También verifique que el usuario que se registra no tenga un rol exento.
Verifique que guardó los nuevos T&C con 'Todos los usuarios (nueva versión)' seleccionado si desea que todos los usuarios re-acepten. También asegúrese de que 'Aceptar en cada inicio de sesión' esté deshabilitado si solo desea solicitudes cuando cambien los T&C.
El módulo usa las cookies 'Drupal.visitor.legal_hash' y 'Drupal.visitor.legal_id' para el flujo de aceptación de inicio de sesión. Agregue estas cookies a la lista blanca en su configuración de Varnish o solución de consentimiento de cookies/GDPR.
La pestaña de administración de Idiomas solo aparece cuando el módulo Locale está habilitado. Habilítelo si necesita soporte de T&C multilingüe.
El Usuario 1 siempre está exento de los requisitos de T&C por diseño. Esto evita que el super administrador quede bloqueado. Pruebe los T&C con una cuenta de usuario diferente.
Asegúrese de que JavaScript esté habilitado y que no haya errores de JavaScript en la página. El modal requiere las bibliotecas AJAX del core de Drupal para funcionar.
Security Notes 5
- El texto de T&C usa filter_xss_admin() que es un filtro XSS permisivo - solo permita que administradores de confianza editen el contenido de T&C
- El flujo de aceptación de inicio de sesión usa hashing criptográfico (Crypt::hmacBase64) con la contraseña del usuario y la marca de tiempo de inicio de sesión para prevenir manipulación
- El token de URL de la página de aceptación expira después de 1 hora por seguridad
- Se usan tokens de autenticación basados en cookies durante el flujo de aceptación de inicio de sesión - estos deben estar en la lista blanca en soluciones de caché pero no expuestos a terceros no confiables
- El Usuario 1 siempre está exento de T&C para prevenir escenarios de bloqueo - asegúrese de que las credenciales del Usuario 1 sean seguras