Oppaitime's version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

disable_inactive_users.php 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?
  2. //------------- Disable inactive user accounts --------------------------//
  3. if (apcu_exists('DBKEY')) {
  4. // Send email
  5. $DB->query("
  6. SELECT um.Username, um.Email
  7. FROM users_info AS ui
  8. JOIN users_main AS um ON um.ID = ui.UserID
  9. LEFT JOIN users_levels AS ul ON ul.UserID = um.ID AND ul.PermissionID = '".CELEB."'
  10. WHERE um.PermissionID IN ('".USER."', '".MEMBER ."')
  11. AND um.LastAccess < '".time_minus(3600 * 24 * 110, true)."'
  12. AND um.LastAccess > '".time_minus(3600 * 24 * 111, true)."'
  13. AND um.LastAccess IS NOT NULL
  14. AND ui.Donor = '0'
  15. AND um.Enabled != '2'
  16. AND ul.UserID IS NULL
  17. GROUP BY um.ID");
  18. while (list($Username, $Email) = $DB->next_record()) {
  19. $Email = DBCrypt::decrypt($Email);
  20. $Body = "Hi $Username,\n\nIt has been almost 4 months since you used your account at ".site_url().". This is an automated email to inform you that your account will be disabled in 10 days if you do not sign in.";
  21. Misc::send_email($Email, 'Your '.SITE_NAME.' account is about to be disabled', $Body);
  22. }
  23. $DB->query("
  24. SELECT um.ID
  25. FROM users_info AS ui
  26. JOIN users_main AS um ON um.ID = ui.UserID
  27. LEFT JOIN users_levels AS ul ON ul.UserID = um.ID AND ul.PermissionID = '".CELEB."'
  28. WHERE um.PermissionID IN ('".USER."', '".MEMBER ."')
  29. AND um.LastAccess < '".time_minus(3600 * 24 * 30 * 4)."'
  30. AND um.LastAccess IS NOT NULL
  31. AND ui.Donor = '0'
  32. AND um.Enabled != '2'
  33. AND ul.UserID IS NULL
  34. GROUP BY um.ID");
  35. if ($DB->has_results()) {
  36. Tools::disable_users($DB->collect('ID'), 'Disabled for inactivity.', 3);
  37. }
  38. }
  39. ?>