Beispiel #1
0
 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'));
 }
Beispiel #3
0
 /**
  * {@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;
 }
Beispiel #5
0
 /**
  * {@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'));
 }
Beispiel #7
0
 /**
  * {@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();
 }