Release v1.3.0: Two-Stage Deletion Workflow with Reminder Emails #7

Merged
DSR-Labs merged 1 commit from dev-1.3.0 into main 2025-11-21 14:37:04 +01:00
DSR-Labs commented 2025-11-21 14:06:28 +01:00 (Migrated from github.com)

🚀 Release v1.3.0: Two-Stage Deletion Workflow with Reminder Emails

📋 Overview

This pull request brings version 1.3.0 of the plugin with a major enhancement: Two-Stage Deletion Workflow with Optional Reminder Emails. This update provides administrators with more flexibility in managing unconfirmed user accounts and gives users a second chance to activate their accounts before deletion.


New Features

🎯 Two-Stage Deletion Process

  • Optional reminder email before deletion (configurable: 0-365 days)
  • Flexible configuration: Separate timing settings for reminder and final deletion
  • Legacy mode: Set reminder to 0 for direct deletion (v1.2.0 behavior)

📊 ACP Log Page for Resent Activation Emails

  • Complete overview of all users who received reminder emails
  • Sortable table by ID, username, email, registration date, or resend date
  • Consistent UI with existing deletion log page
  • Shared permission system with deletion log

📧 Enhanced Email Notifications

  • Separate Notifications: Two independent notification settings:
    • Notification when reminder emails are sent
    • Notification when users are deleted
  • Improved Email Templates: Professional HTML emails with anonymized user lists
  • Direct ACP Links: Quick access to relevant log pages from email notifications

🔍 Intelligent Contact Form Detection

  • Automatic check if contact form module is enabled
  • Prevents errors when module is disabled
  • Emails work flawlessly even without active contact form

📝 Technical Details

📁 Changed Files

  • 15 files changed
  • +527 lines added
  • -67 lines removed

🆕 New Components

  • Database table: wcf1_resent_activation_email_log
  • DatabaseObject classes (ResentActivationEmailLog, Editor, List)
  • ACP page (ResentActivationEmailLogPage)
  • Refactored cronjob with three-stage processing logic
  • New plugin options for two-stage workflow
  • Enhanced email templates (HTML + Plain Text)

🗄️ Database Updates

  • New update script: update_1.2.0_to_1.3.0.php
  • Creates wcf1_resent_activation_email_log table
  • No data migration required (feature is entirely new)

⚙️ Configuration

🆕 New Options

  • Days until resending activation email - Set reminder timing (0 = disabled, direct deletion)
  • Email notification when sending reminder emails - Enable/disable notifications for reminders
  • Email notification when deleting users - Enable/disable notifications for deletions (replaces old single option)

🔄 Updated Options

  • Days until deletion - Now counts from reminder email date in two-stage mode

Testing Checklist

Functional Tests

  • Two-stage deletion process works correctly
  • Reminder emails are sent with correct content
  • ACP log page for resent emails works correctly
  • Database logging saves all reminder email processes
  • Separate email notifications work correctly
  • Direct deletion mode (reminder = 0) works as before
  • Contact form detection works correctly
  • Data anonymization works for all new features
  • Permissions work correctly

Technical Tests

  • Database update script works correctly
  • Migration from v1.2.0 to v1.3.0 tested
  • Cronjob processing with limits works
  • Email templates are rendered correctly (HTML + Plain Text)
  • No SQL errors or warnings
  • No PHP errors or warnings

Compatibility

  • WoltLab Suite 6.1.0+ compatibility confirmed
  • Backward compatibility with v1.2.0 configuration
  • All language files (DE/EN) updated

📋 Pre-Merge Checklist

Code Quality

  • Code is tested
  • Commit history is clean
  • All features are implemented
  • No TODOs or FIXMEs in code

Package Management

  • Package version updated to 1.3.0
  • Package date set to 2025-11-20
  • Database update script created
  • Update instructions added to package.xml

Language Files

  • language/en.xml updated
  • language/de.xml updated
  • All new email templates translated

🔗 Additional Information

  • Compatibility: WoltLab Suite 6.1.0+
  • GDPR Compliance: All personal data is anonymized
  • Backward Compatibility: Migration from v1.2.0 is automatic and seamless
  • Performance: Optimized SQL queries with efficient indexes

📚 Configuration Examples

Days until resending: 7
Days until deletion: 7

Result: User registers → After 7 days: Reminder email → After another 7 days (total 14): Deletion

Example 2: Direct Deletion Mode (Legacy)

Days until resending: 0
Days until deletion: 7

Result: User registers → After 7 days: Direct deletion (without reminder)


Ready for Review & Merge

# 🚀 Release v1.3.0: Two-Stage Deletion Workflow with Reminder Emails ## 📋 Overview This pull request brings version 1.3.0 of the plugin with a major enhancement: **Two-Stage Deletion Workflow with Optional Reminder Emails**. This update provides administrators with more flexibility in managing unconfirmed user accounts and gives users a second chance to activate their accounts before deletion. --- ## ✨ New Features ### 🎯 Two-Stage Deletion Process - ✅ Optional reminder email before deletion (configurable: 0-365 days) - ✅ Flexible configuration: Separate timing settings for reminder and final deletion - ✅ Legacy mode: Set reminder to 0 for direct deletion (v1.2.0 behavior) ### 📊 ACP Log Page for Resent Activation Emails - ✅ Complete overview of all users who received reminder emails - ✅ Sortable table by ID, username, email, registration date, or resend date - ✅ Consistent UI with existing deletion log page - ✅ Shared permission system with deletion log ### 📧 Enhanced Email Notifications - ✅ **Separate Notifications**: Two independent notification settings: - Notification when reminder emails are sent - Notification when users are deleted - ✅ **Improved Email Templates**: Professional HTML emails with anonymized user lists - ✅ **Direct ACP Links**: Quick access to relevant log pages from email notifications ### 🔍 Intelligent Contact Form Detection - ✅ Automatic check if contact form module is enabled - ✅ Prevents errors when module is disabled - ✅ Emails work flawlessly even without active contact form --- ## 📝 Technical Details ### 📁 Changed Files - **15 files changed** - **+527 lines added** - **-67 lines removed** ### 🆕 New Components - ✅ Database table: `wcf1_resent_activation_email_log` - ✅ DatabaseObject classes (ResentActivationEmailLog, Editor, List) - ✅ ACP page (ResentActivationEmailLogPage) - ✅ Refactored cronjob with three-stage processing logic - ✅ New plugin options for two-stage workflow - ✅ Enhanced email templates (HTML + Plain Text) ### 🗄️ Database Updates - ✅ New update script: `update_1.2.0_to_1.3.0.php` - ✅ Creates `wcf1_resent_activation_email_log` table - ✅ No data migration required (feature is entirely new) --- ## ⚙️ Configuration ### 🆕 New Options - ✅ **Days until resending activation email** - Set reminder timing (0 = disabled, direct deletion) - ✅ **Email notification when sending reminder emails** - Enable/disable notifications for reminders - ✅ **Email notification when deleting users** - Enable/disable notifications for deletions (replaces old single option) ### 🔄 Updated Options - ✅ **Days until deletion** - Now counts from reminder email date in two-stage mode --- ## ✅ Testing Checklist ### Functional Tests - [x] Two-stage deletion process works correctly - [x] Reminder emails are sent with correct content - [x] ACP log page for resent emails works correctly - [x] Database logging saves all reminder email processes - [x] Separate email notifications work correctly - [x] Direct deletion mode (reminder = 0) works as before - [x] Contact form detection works correctly - [x] Data anonymization works for all new features - [x] Permissions work correctly ### Technical Tests - [x] Database update script works correctly - [x] Migration from v1.2.0 to v1.3.0 tested - [x] Cronjob processing with limits works - [x] Email templates are rendered correctly (HTML + Plain Text) - [x] No SQL errors or warnings - [x] No PHP errors or warnings ### Compatibility - [x] WoltLab Suite 6.1.0+ compatibility confirmed - [x] Backward compatibility with v1.2.0 configuration - [x] All language files (DE/EN) updated --- ## 📋 Pre-Merge Checklist ### Code Quality - [x] Code is tested - [x] Commit history is clean - [x] All features are implemented - [x] No TODOs or FIXMEs in code ### Package Management - [x] Package version updated to 1.3.0 - [x] Package date set to 2025-11-20 - [x] Database update script created - [x] Update instructions added to package.xml ### Language Files - [x] language/en.xml updated - [x] language/de.xml updated - [x] All new email templates translated --- ## 🔗 Additional Information - **Compatibility**: WoltLab Suite 6.1.0+ - **GDPR Compliance**: All personal data is anonymized - **Backward Compatibility**: Migration from v1.2.0 is automatic and seamless - **Performance**: Optimized SQL queries with efficient indexes --- ## 📚 Configuration Examples ### Example 1: Two-Stage Process (Recommended) ``` Days until resending: 7 Days until deletion: 7 ``` **Result:** User registers → After 7 days: Reminder email → After another 7 days (total 14): Deletion ### Example 2: Direct Deletion Mode (Legacy) ``` Days until resending: 0 Days until deletion: 7 ``` **Result:** User registers → After 7 days: Direct deletion (without reminder) --- **Ready for Review & Merge** ✅
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DSR-Labs/de.deinestrainreviews.autoDeleteUnconfirmedUsers!7
No description provided.