Purge Users

Elimina o bloquea automáticamente usuarios inactivos según criterios configurables basados en tiempo.

purge_users
834 sites
25
drupal.org

Instalar

Drupal 11, 10, 9 v4.0.0
composer require 'drupal/purge_users:^4.0'

Overview

Purge Users proporciona a los administradores la capacidad de gestionar automáticamente cuentas de usuario inactivas según diversas condiciones basadas en tiempo. El módulo puede identificar usuarios que nunca han iniciado sesión, que no han iniciado sesión durante un período específico, que nunca activaron sus cuentas o que han estado bloqueados durante cierta duración.

Los administradores pueden configurar múltiples condiciones de purga simultáneamente, filtrar usuarios por rol (incluir o excluir roles específicos) y elegir entre diferentes métodos de cancelación, incluyendo bloquear, eliminar o reasignar contenido a usuarios anónimos. El módulo soporta tanto la purga automatizada vía cron como la purga manual a través de una interfaz de confirmación.

Se pueden enviar notificaciones por correo electrónico a los usuarios tanto antes como después de que sus cuentas sean purgadas, con plantillas personalizables que soportan integración con el módulo Token. El módulo también proporciona opciones de protección para evitar purgar usuarios que han creado contenido o comentarios, asegurando que se preserve la información importante de autoría.

Features

  • Purgar usuarios que nunca han iniciado sesión después de un período de tiempo configurable
  • Purgar usuarios que no han iniciado sesión durante una duración específica
  • Purgar usuarios cuyas cuentas no han sido activadas dentro de un período de tiempo establecido
  • Purgar usuarios que han estado bloqueados durante un período configurable
  • Filtrado basado en roles con opciones de inclusión y exclusión para purga dirigida
  • Múltiples métodos de cancelación de usuario: bloquear, bloquear y despublicar contenido, eliminar cuenta o reasignar contenido a anónimo
  • Opción de seguir la política de cancelación del sitio
  • Notificación por correo electrónico a usuarios después de que su cuenta sea eliminada
  • Notificación por correo electrónico previa a la eliminación advirtiendo a usuarios antes de que su cuenta sea purgada
  • Integración con el módulo Token para plantillas de correo personalizadas
  • Purga automática vía cron o purga manual a través de la interfaz
  • Opciones de protección para evitar purgar autores de contenido y comentaristas
  • Períodos de tiempo configurables en días, meses o años
  • API extensible con hooks alter para personalizar la selección de usuarios
  • Procesamiento basado en Queue para manejar grandes cantidades de usuarios
  • Registro en base de datos para prevenir notificaciones duplicadas

Use Cases

Cumplimiento de retención de datos GDPR

Configura el módulo para eliminar automáticamente cuentas de usuario que han estado inactivas durante un período que coincida con tu política de retención de datos (ej., 2 años). Habilita las notificaciones previas a la eliminación para dar a los usuarios la oportunidad de iniciar sesión y preservar sus cuentas. Esto ayuda a mantener el cumplimiento GDPR al no retener datos personales más tiempo del necesario.

Limpieza de registros abandonados

Habilita 'Purgar usuarios que nunca han iniciado sesión' con un período de 30 días para eliminar automáticamente registros de spam y usuarios que crearon cuentas pero nunca las activaron o usaron. Usa el método 'user_cancel_delete' ya que estas cuentas no tienen contenido que preservar.

Gestión de usuarios bloqueados

Después de bloquear usuarios problemáticos, configura el módulo para eliminar automáticamente sus cuentas después de un período de espera (ej., 6 meses). Esto da tiempo para cualquier apelación mientras asegura que las cuentas bloqueadas no persistan indefinidamente.

Gestión de usuarios en sitios de membresía

Para sitios basados en suscripción, configura el filtrado basado en roles para purgar solo usuarios con el rol 'basic_member' que no han iniciado sesión, mientras excluyes los roles 'premium_member' y 'administrator'. Usa notificaciones previas a la eliminación para fomentar la reactivación.

Preservación de autoría de contenido

Habilita 'No purgar usuarios que son autores de contenido existente' y 'No purgar usuarios con comentarios existentes' para asegurar que la purga de usuarios no deje contenido huérfano. Combinado con el método 'user_cancel_reassign', el contenido de usuarios purgados se atribuirá a Anónimo.

Tips

  • Siempre prueba en un entorno de staging antes de habilitar la purga automática en producción
  • Excluye los roles de administrador y otros roles importantes de la purga para prevenir bloqueos accidentales
  • Habilita las notificaciones previas a la eliminación para dar a los usuarios la oportunidad de volver a iniciar sesión antes de que sus cuentas sean eliminadas
  • Usa el botón 'Purgar usuarios ahora' para previsualizar qué usuarios serían afectados antes de habilitar la purga basada en cron
  • Mantén copias de seguridad regulares de la base de datos, especialmente antes de realizar operaciones de purga grandes
  • Considera usar exclusiones de rol para usuarios que han comprado productos o tienen historial de cuenta importante
  • El módulo excluye automáticamente al usuario ID 1 (el super administrador) de todas las operaciones de purga

Technical Details

Admin Pages 2
Purgar usuarios /admin/people/purge-rule

Configura condiciones de purga de usuarios, métodos de cancelación, filtros de rol y ajustes de notificación. Esta es la página principal de configuración del módulo Auto Purge Users.

Confirmar purga de usuarios /admin/people/purge-rule/confirm

Página de confirmación que muestra la lista de usuarios que serán purgados según la configuración actual. Muestra hasta 50 nombres de usuario con direcciones de correo electrónico, luego resume el conteo restante.

Permisos 2
Acceder a la página de Auto Purge Users

Permite a un usuario ver y editar reglas de purga de usuarios. Permiso de acceso restringido.

Purgar usuarios

Permite a un usuario iniciar la purga de usuarios mediante el formulario de confirmación en la interfaz. Permiso de acceso restringido.

Hooks 4
hook_purge_never_loggedin_user_ids_alter

Modifica la lista de IDs de usuario para usuarios que nunca han iniciado sesión antes de ser purgados.

hook_purge_not_loggedin_user_ids_alter

Modifica la lista de IDs de usuario para usuarios que no han iniciado sesión durante el período configurado.

hook_purge_inactive_user_ids_alter

Modifica la lista de IDs de usuario para usuarios cuyas cuentas no han sido activadas.

hook_purge_blocked_user_ids_alter

Modifica la lista de IDs de usuario para usuarios bloqueados antes de ser purgados.

Troubleshooting 6
Los usuarios no están siendo purgados durante cron

Verifica que 'Purgar en cron' esté habilitado en la configuración. Comprueba que al menos una condición de purga esté habilitada y al menos un rol esté seleccionado para inclusión. Asegúrate de que cron se esté ejecutando correctamente en tu sitio.

Los usuarios bloqueados se procesan repetidamente

Habilita la opción 'Ignorar usuarios inactivos/bloqueados' si estás usando un método de cancelación que bloquea usuarios (user_cancel_block o user_cancel_block_unpublish). Esto previene que usuarios ya bloqueados sean procesados en cada ejecución de cron.

Error de validación del formulario sobre habilitar condiciones

Al menos una condición de purga debe estar habilitada (nunca iniciaron sesión, no han iniciado sesión, inactivos o usuarios bloqueados). Habilita al menos una condición para guardar la configuración.

No se puede purgar usuarios bloqueados e ignorarlos simultáneamente

Estas opciones son mutuamente excluyentes. Si quieres purgar usuarios bloqueados, no puedes también ignorarlos. Elige un enfoque basado en tus necesidades.

Las notificaciones por correo no se están enviando

Verifica que la casilla de notificación esté habilitada. Comprueba que los usuarios tengan direcciones de correo válidas. Revisa el canal de log 'notification_users' para errores. Asegúrate de que el sistema de correo de tu sitio esté configurado correctamente.

El contenido no se está reasignando a Anónimo

El método 'user_cancel_reassign' solo funciona para entidades de nodo estándar. Los tipos de entidad personalizados pueden no estar cubiertos. Revisa la lógica personalizada del módulo en UserManagementService para tipos de entidad soportados.

Security Notes 6
  • Este módulo tiene permisos de acceso restringido - solo otórgalos a administradores de confianza
  • El permiso 'access purge confirmation form' permite a usuarios eliminar cuentas de usuario - usar con precaución
  • Siempre excluye los roles administrativos de la purga para prevenir pérdida accidental de acceso de administrador
  • El módulo no purga al usuario ID 1 (super administrador) bajo ninguna circunstancia
  • Prueba exhaustivamente en entornos de staging ya que los usuarios purgados no pueden ser recuperados sin restauración de base de datos
  • Al usar 'user_cancel_delete', todo el contenido del usuario será eliminado permanentemente