public function preRender(&$values) { $uids = array(); $this->items = array(); $permission_names = \Drupal::service('user.permissions')->getPermissions(); $rids = array(); foreach ($values as $result) { $user_rids = $this->getEntity($result)->getRoles(); $uid = $this->getValue($result); foreach ($user_rids as $rid) { $rids[$rid][] = $uid; } } if ($rids) { $roles = $this->roleStorage->loadMultiple(array_keys($rids)); foreach ($rids as $rid => $role_uids) { foreach ($roles[$rid]->getPermissions() as $permission) { foreach ($role_uids as $uid) { $this->items[$uid][$permission]['permission'] = $permission_names[$permission]['title']; } } } foreach ($uids as $uid) { if (isset($this->items[$uid])) { ksort($this->items[$uid]); } } } }
/** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { if ($roles = array_filter($form_state->getValue('roles'))) { foreach ($roles as $key => $role) { $roles[$key] = $this->roleStorage->load($role)->label(); } // Authenticated role includes all users so we can ignore all other roles. $properties = []; if (!array_key_exists(AccountInterface::AUTHENTICATED_ROLE, $roles)) { $properties['roles'] = array_keys($roles); } $users = $this->userStorage->loadByProperties($properties); $exclude_myself = $form_state->getValue('exclude_myself') == '1'; $account = \Drupal::currentUser(); /** @var \Drupal\user\UserInterface $user */ foreach ($users as $user) { if ($exclude_myself && $user->id() == $account->id()) { continue; } if ($user->hasRole(AccountInterface::ANONYMOUS_ROLE)) { continue; } $user->set('field_password_expiration', '1'); $user->save(); } drupal_set_message($this->formatPlural(count($roles), 'Reset the %roles role.', 'Reset the %roles roles.', ['%roles' => implode(', ', array_values($roles))])); } else { drupal_set_message($this->t('No roles selected.'), 'warning'); } $form_state->setRedirectUrl(new Url('entity.password_policy.collection')); }
/** * {@inheritdoc} */ public function calculateDependencies() { $dependencies = array(); foreach ($this->value as $role_id) { $role = $this->roleStorage->load($role_id); $dependencies[$role->getConfigDependencyKey()][] = $role->getConfigDependencyName(); } return $dependencies; }
/** * {@inheritdoc} */ public function buildForm(array $form, FormStateInterface $form_state) { $cached_values = $form_state->getTemporaryValue('wizard'); /** @var $policy \Drupal\password_policy\Entity\PasswordPolicy */ $policy = $cached_values['password_policy']; $options = []; foreach ($this->storage->loadMultiple() as $role) { $options[$role->id()] = $role->label(); } unset($options[AccountInterface::ANONYMOUS_ROLE]); $form['roles'] = ['#type' => 'checkboxes', '#title' => $this->t('Apply to Roles'), '#description' => $this->t('Select Roles to which this policy applies.'), '#options' => $options, '#default_value' => $policy->getRoles()]; return $form; }
/** * {@inheritdoc} */ public function calculateDependencies() { $dependencies = parent::calculateDependencies(); foreach (array_keys($this->options['role']) as $rid) { if ($role = $this->roleStorage->load($rid)) { $dependencies[$role->getConfigDependencyKey()][] = $role->getConfigDependencyName(); } } return $dependencies; }
/** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { $roles = $form_state->getValue('roles'); $role_names = []; foreach ($roles as $role) { if ($role_obj = $this->role_storage->load($role)) { $role_names[] = $role_obj->label(); } else { $role_names[] = $role; } $users = $this->user_storage->loadByProperties(['roles' => $role]); foreach ($users as $user) { if ($form_state->getValue('exclude_myself') == '1' and $user->id() == \Drupal::currentUser()->id()) { continue; } $user->set('field_password_expiration', '1'); $user->save(); } } drupal_set_message($this->t('Reset the %roles roles.', array('%roles' => implode(', ', $role_names)))); $form_state->setRedirectUrl(new Url('entity.password_policy.collection')); }
/** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); $this->config('user.settings')->set('anonymous', $form_state->getValue('anonymous'))->set('register', $form_state->getValue('user_register'))->set('password_strength', $form_state->getValue('user_password_strength'))->set('verify_mail', $form_state->getValue('user_email_verification'))->set('cancel_method', $form_state->getValue('user_cancel_method'))->set('notify.status_activated', $form_state->getValue('user_mail_status_activated_notify'))->set('notify.status_blocked', $form_state->getValue('user_mail_status_blocked_notify'))->set('notify.status_canceled', $form_state->getValue('user_mail_status_canceled_notify'))->save(); $this->config('user.mail')->set('cancel_confirm.body', $form_state->getValue('user_mail_cancel_confirm_body'))->set('cancel_confirm.subject', $form_state->getValue('user_mail_cancel_confirm_subject'))->set('password_reset.body', $form_state->getValue('user_mail_password_reset_body'))->set('password_reset.subject', $form_state->getValue('user_mail_password_reset_subject'))->set('register_admin_created.body', $form_state->getValue('user_mail_register_admin_created_body'))->set('register_admin_created.subject', $form_state->getValue('user_mail_register_admin_created_subject'))->set('register_no_approval_required.body', $form_state->getValue('user_mail_register_no_approval_required_body'))->set('register_no_approval_required.subject', $form_state->getValue('user_mail_register_no_approval_required_subject'))->set('register_pending_approval.body', $form_state->getValue('user_mail_register_pending_approval_body'))->set('register_pending_approval.subject', $form_state->getValue('user_mail_register_pending_approval_subject'))->set('status_activated.body', $form_state->getValue('user_mail_status_activated_body'))->set('status_activated.subject', $form_state->getValue('user_mail_status_activated_subject'))->set('status_blocked.body', $form_state->getValue('user_mail_status_blocked_body'))->set('status_blocked.subject', $form_state->getValue('user_mail_status_blocked_subject'))->set('status_canceled.body', $form_state->getValue('user_mail_status_canceled_body'))->set('status_canceled.subject', $form_state->getValue('user_mail_status_canceled_subject'))->save(); $this->config('system.site')->set('mail_notification', $form_state->getValue('mail_notification_address'))->save(); // Change the admin role. if ($form_state->hasValue('user_admin_role')) { $admin_roles = $this->roleStorage->getQuery()->condition('is_admin', TRUE)->execute(); foreach ($admin_roles as $rid) { $this->roleStorage->load($rid)->setIsAdmin(FALSE)->save(); } $new_admin_role = $form_state->getValue('user_admin_role'); if ($new_admin_role) { $this->roleStorage->load($new_admin_role)->setIsAdmin(TRUE)->save(); } } }
/** * Gets the roles to display in this form. * * @return \Drupal\user\RoleInterface[] * An array of role objects. */ protected function getRoles() { return $this->roleStorage->loadMultiple(); }