インストール
composer require 'drupal/purge_users:^4.0'
概要
Purge Users は、さまざまな時間ベースの条件に基づいて、非アクティブなユーザーアカウントを自動的に管理する機能を管理者に提供します。このモジュールは、一度もログインしていないユーザー、指定期間ログインしていないユーザー、アカウントを有効化していないユーザー、または一定期間ブロックされているユーザーを識別できます。
管理者は複数のパージ条件を同時に設定し、ロールでユーザーをフィルタリング(特定のロールを含めるまたは除外)し、ブロック、削除、コンテンツを匿名ユーザーに再割り当てなど、さまざまなキャンセル方法から選択できます。このモジュールは、cron による自動パージと確認インターフェースを通じた手動パージの両方をサポートしています。
アカウントがパージされる前後にユーザーにメール通知を送信でき、Token モジュール連携をサポートするカスタマイズ可能なテンプレートが利用できます。また、コンテンツやコメントを作成したユーザーのパージを防ぐ保護オプションも提供しており、重要な著作者情報を保持できます。
Features
- 設定可能な期間後に一度もログインしていないユーザーをパージ
- 指定期間ログインしていないユーザーをパージ
- 設定した期間内にアカウントが有効化されていないユーザーをパージ
- 設定可能な期間ブロックされているユーザーをパージ
- ターゲットを絞ったパージのための含める・除外オプション付きロールベースフィルタリング
- 複数のユーザーキャンセル方法:ブロック、ブロックしてコンテンツを非公開、アカウント削除、コンテンツを匿名ユーザーに再割り当て
- サイト全体のキャンセルポリシーに従うオプション
- アカウント削除後のユーザーへのメール通知
- アカウントがパージされる前のユーザーへの事前削除メール通知
- パーソナライズされたメールテンプレートのための Token モジュール連携
- cron による自動パージまたは UI を通じた手動パージ
- コンテンツ作成者とコメント投稿者のパージを防ぐ保護オプション
- 日、月、年単位で設定可能な期間
- ユーザー選択をカスタマイズするための alter hook を備えた拡張可能な API
- 大量のユーザーを処理するためのキューベース処理
- 重複通知を防ぐためのデータベースログ記録
Use Cases
GDPR データ保持コンプライアンス
データ保持ポリシーに合致する期間(例:2年)非アクティブなユーザーアカウントを自動的に削除するようにモジュールを設定します。事前削除通知を有効にして、ユーザーがログインしてアカウントを保持する機会を与えます。これにより、必要以上に個人データを保持しないことで GDPR コンプライアンスの維持に役立ちます。
放棄された登録のクリーンアップ
30日間の期間で「一度もログインしていないユーザーをパージ」を有効にして、スパム登録やアカウントを作成したが有効化または使用しなかったユーザーを自動的に削除します。これらのアカウントには保持するコンテンツがないため、'user_cancel_delete' 方法を使用します。
ブロックされたユーザーの管理
問題のあるユーザーをブロックした後、待機期間(例:6ヶ月)後に自動的にアカウントを削除するようにモジュールを設定します。これにより、異議申し立ての時間を確保しながら、ブロックされたアカウントが無期限に存続しないようにします。
メンバーシップサイトのユーザー管理
サブスクリプションベースのサイトでは、ロールベースのフィルタリングを設定して、ログインしていない 'basic_member' ロールのユーザーのみをパージし、'premium_member' と 'administrator' ロールは除外します。再エンゲージメントを促すために事前削除通知を使用します。
コンテンツ著作者情報の保持
「既存コンテンツの作成者であるユーザーをパージしない」と「既存のコメントがあるユーザーをパージしない」を有効にして、ユーザーパージによってコンテンツが孤立しないようにします。'user_cancel_reassign' 方法と組み合わせると、パージされたユーザーのコンテンツは匿名ユーザーに帰属されます。
Tips
- 本番環境で自動パージを有効にする前に、必ずステージング環境でテストしてください
- 誤ってロックアウトされることを防ぐため、管理者やその他の重要なロールをパージから除外してください
- ユーザーがアカウント削除前に再ログインする機会を与えるため、事前削除通知を有効にしてください
- cron ベースのパージを有効にする前に、「今すぐユーザーをパージ」ボタンを使用して影響を受けるユーザーをプレビューしてください
- 特に大規模なパージ操作を行う前に、定期的なデータベースバックアップを維持してください
- 商品を購入したユーザーや重要なアカウント履歴を持つユーザーには、ロール除外の使用を検討してください
- モジュールはユーザー ID 1(スーパー管理者)をすべてのパージ操作から自動的に除外します
Technical Details
Admin Pages 2
/admin/people/purge-rule
ユーザーパージ条件、キャンセル方法、ロールフィルター、通知設定を構成します。これは Auto Purge Users モジュールのメイン設定ページです。
/admin/people/purge-rule/confirm
現在の設定に基づいてパージされるユーザーのリストを表示する確認ページ。メールアドレス付きで最大50ユーザー名を表示し、残りは件数を要約します。
権限 2
Hooks 4
hook_purge_never_loggedin_user_ids_alter
一度もログインしていないユーザーがパージされる前に、ユーザー ID のリストを変更します。
hook_purge_not_loggedin_user_ids_alter
設定された期間ログインしていないユーザーのユーザー ID リストを変更します。
hook_purge_inactive_user_ids_alter
アカウントが有効化されていないユーザーのユーザー ID リストを変更します。
hook_purge_blocked_user_ids_alter
ブロックされたユーザーがパージされる前に、ユーザー ID のリストを変更します。
Troubleshooting 6
設定で「cron でパージ」が有効になっていることを確認してください。少なくとも1つのパージ条件が有効で、少なくとも1つのロールが含めるよう選択されていることを確認してください。サイトで cron が正常に実行されていることを確認してください。
ユーザーをブロックするキャンセル方法(user_cancel_block または user_cancel_block_unpublish)を使用している場合は、「非アクティブ/ブロック済みユーザーを無視」オプションを有効にしてください。これにより、すでにブロックされているユーザーが毎回の cron 実行で処理されることを防ぎます。
少なくとも1つのパージ条件を有効にする必要があります(一度もログインしていない、ログインしていない、非アクティブ、ブロックされたユーザー)。設定を保存するには、少なくとも1つの条件を有効にしてください。
これらのオプションは相互に排他的です。ブロックされたユーザーをパージしたい場合、同時に無視することはできません。ニーズに基づいてどちらかのアプローチを選択してください。
通知チェックボックスが有効になっていることを確認してください。ユーザーに有効なメールアドレスがあることを確認してください。'notification_users' ログチャンネルでエラーを確認してください。サイトのメールシステムが正しく設定されていることを確認してください。
'user_cancel_reassign' 方法は標準の Node エンティティに対してのみ機能します。カスタムエンティティタイプは対象外の場合があります。サポートされているエンティティタイプについては、UserManagementService のモジュールのカスタムロジックを確認してください。
Security Notes 6
- このモジュールには制限付きアクセス権限があります - 信頼できる管理者にのみ付与してください
- 'access purge confirmation form' 権限はユーザーがユーザーアカウントを削除することを許可します - 注意して使用してください
- 管理者アクセスの誤った喪失を防ぐため、常に管理ロールをパージから除外してください
- モジュールはいかなる状況でもユーザー ID 1(スーパー管理者)をパージしません
- パージされたユーザーはデータベース復元なしには回復できないため、ステージング環境で十分にテストしてください
- 'user_cancel_delete' を使用すると、すべてのユーザーコンテンツが永久に削除されます