function opigno_moxtra_post_update_update_user_status in Opigno Moxtra 8
Same name and namespace in other branches
- 3.x opigno_moxtra.post_update.php \opigno_moxtra_post_update_update_user_status()
Updates users status with Opigno API.
File
- ./
opigno_moxtra.post_update.php, line 14 - Contains opigno_moxtra.post_update.
Code
function opigno_moxtra_post_update_update_user_status(&$sandbox) {
$config = \Drupal::config('opigno_moxtra.settings');
$org_id = $config
->get('org_id');
$status = $config
->get('status');
if (!empty($org_id) && $status === TRUE) {
$opigno_api = \Drupal::service('opigno_moxtra.opigno_api');
if (!isset($sandbox['last_uid'])) {
$sandbox['last_uid'] = 0;
$sandbox['current'] = 0;
$sandbox['total'] = \Drupal::entityQuery('user')
->count()
->execute();
}
$uids = \Drupal::entityQuery('user')
->condition('uid', $sandbox['last_uid'], '>')
->range(0, 10)
->execute();
/** @var \Drupal\user\Entity\User[] $users */
$users = User::loadMultiple($uids);
foreach ($users as $user) {
$active = $user
->isActive() && $user
->hasRole(OPIGNO_MOXTRA_COLLABORATIVE_FEATURES_RID);
if ($active) {
$data = [
'uid' => $user
->id(),
'name' => $user
->getDisplayName(),
'timezone' => $user
->getTimeZone(),
];
$opigno_api
->updateUser($data);
$opigno_api
->enableUser($data);
}
else {
$opigno_api
->disableUser($user
->id());
}
$sandbox['last_uid'] = $user
->id();
$sandbox['current']++;
$sandbox['#finished'] = $sandbox['current'] / $sandbox['total'];
}
}
}