You are here

function purge_users_get_user_ids in Auto Purge Users 8.2

Same name and namespace in other branches
  1. 8.3 purge_users.module \purge_users_get_user_ids()
  2. 8 purge_users.module \purge_users_get_user_ids()

Get user ids to purge.

4 calls to purge_users_get_user_ids()
ConfirmationForm::buildForm in src/Form/ConfirmationForm.php
Form constructor.
ConfirmationForm::submitForm in src/Form/ConfirmationForm.php
Form submission handler.
purge_users_cron in ./purge_users.module
Implements hook_cron().
SettingsForm::purgeUsersNowSubmit in src/Form/SettingsForm.php
Submit handler for mass-account cancellation form.

File

./purge_users.module, line 261
Purge users module file.

Code

function purge_users_get_user_ids($op = 'purge_users') {

  // Get form submissions.
  $result = [];
  $config = \Drupal::config('purge_users.settings');
  $enable_never_loggedin = $config
    ->get('enabled_never_loggedin_users');
  $enable_loggedin = $config
    ->get('enabled_loggedin_users');
  $enable_inactive = $config
    ->get('enabled_inactive_users');
  $enable_blocked = $config
    ->get('enabled_blocked_users');
  $send_email_user_before_notification = $config
    ->get('send_email_user_before_notification');
  $param = [
    'never_login_value' => $config
      ->get('user_never_lastlogin_value'),
    'never_login_period' => $config
      ->get('user_never_lastlogin_period'),
    'login_value' => $config
      ->get('user_lastlogin_value'),
    'login_period' => $config
      ->get('user_lastlogin_period'),
    'inactive_value' => $config
      ->get('user_inactive_value'),
    'inactive_period' => $config
      ->get('user_inactive_period'),
    'blocked_value' => $config
      ->get('user_blocked_value'),
    'blocked_period' => $config
      ->get('user_blocked_period'),
    'disregard_blocked_users' => $config
      ->get('disregard_blocked_users'),
  ];
  if ($op == 'notification_users' && $send_email_user_before_notification == 1) {
    $user_before_notification_value = $config
      ->get('user_before_notification_value');
    $param['never_login_value'] = $param['login_value'] = $param['inactive_value'] = $param['blocked_value'] = $user_before_notification_value;
  }
  $included_user_roles = array_filter($config
    ->get('purge_included_users_roles'));
  $excluded_user_roles = array_filter($config
    ->get('purge_excluded_users_roles'));

  // Get user ids to purge.
  $never_loggedin_users = [];
  $not_loggedin_users = [];
  $inactive_users = [];
  $blocked_users = [];

  // Get users who have never logged in at all.
  if ($enable_never_loggedin == 1) {
    $never_loggedin_users = purge_users_never_loggedin_user_ids($param, $included_user_roles, $excluded_user_roles);
  }

  // Get users who have not logged in at all.
  if ($enable_loggedin == 1) {
    $not_loggedin_users = purge_users_not_loggedin_user_ids($param, $included_user_roles, $excluded_user_roles);
  }

  // Get users who didn't activate their account.
  if ($enable_inactive == 1) {
    $inactive_users = purge_users_inactive_user_ids($param, $included_user_roles, $excluded_user_roles);
  }

  // Get the users who are blocked.
  if ($enable_blocked == 1) {
    $blocked_users = purge_users_blocked_user_ids($param, $included_user_roles, $excluded_user_roles);
  }

  // Merge results to create an array of user ids to purge.
  $result = array_merge($never_loggedin_users, $not_loggedin_users, $inactive_users, $blocked_users);
  return $result;
}