reverted: --- b/core/modules/user/src/AdministratorRoleSettingsForm.php +++ /dev/null @@ -1,117 +0,0 @@ -roleStorage = $role_storage; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('config.factory'), - $container->get('entity_type.manager')->getStorage('user_role') - ); - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'administrator_role_settings'; - } - - /** - * {@inheritdoc} - */ - protected function getEditableConfigNames() { - return [ - 'system.site', - 'user.mail', - 'user.settings', - ]; - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state) { - $form = parent::buildForm($form, $form_state); - - // Administrative role option. - $form['admin_role'] = [ - '#type' => 'details', - '#title' => $this->t('Administrator role'), - '#open' => TRUE, - ]; - // Do not allow users to set the anonymous or authenticated user roles as - // the administrator role. - $roles = user_role_names(TRUE); - unset($roles[RoleInterface::AUTHENTICATED_ID]); - $admin_roles = $this->roleStorage->getQuery() - ->condition('is_admin', TRUE) - ->execute(); - $default_value = reset($admin_roles); - $form['admin_role']['user_admin_role'] = [ - '#type' => 'select', - '#title' => $this->t('Administrator role'), - '#empty_value' => '', - '#default_value' => $default_value, - '#options' => $roles, - '#description' => $this->t('This role will be automatically assigned new permissions whenever a module is enabled. Changing this setting will not affect existing permissions.'), - // Don't allow to select a single admin role in case multiple roles got - // marked as admin role already. - '#access' => count($admin_roles) <= 1, - ]; - - return parent::buildForm($form, $form_state); - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - 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(); - } - } - parent::submitForm($form, $form_state); - } - -} diff -u b/core/modules/user/tests/src/Unit/Menu/UserLocalTasksTest.php b/core/modules/user/tests/src/Unit/Menu/UserLocalTasksTest.php --- b/core/modules/user/tests/src/Unit/Menu/UserLocalTasksTest.php +++ b/core/modules/user/tests/src/Unit/Menu/UserLocalTasksTest.php @@ -30,9 +30,9 @@ */ public function getUserAdminRoutes() { return [ - ['entity.user.collection', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'entity.user.administrator_role']]], - ['user.admin_permissions', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'entity.user.administrator_role']]], - ['entity.user_role.collection', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'entity.user.administrator_role']]], + ['entity.user.collection', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'user.role.settings']]], + ['user.admin_permissions', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'user.role.settings']]], + ['entity.user_role.collection', [['entity.user.collection', 'user.admin_permissions', 'entity.user_role.collection', 'user.role.settings']]], ['entity.user.admin_form', [['user.account_settings_tab']]], ]; } diff -u b/core/modules/user/user.links.task.yml b/core/modules/user/user.links.task.yml --- b/core/modules/user/user.links.task.yml +++ b/core/modules/user/user.links.task.yml @@ -51,7 +51,7 @@ weight: 10 -entity.user.administrator_role: +user.role.settings: title: 'Role settings' - route_name: entity.user.administrator_role + route_name: user.role.settings base_route: entity.user.collection weight: 11 diff -u b/core/modules/user/user.routing.yml b/core/modules/user/user.routing.yml --- b/core/modules/user/user.routing.yml +++ b/core/modules/user/user.routing.yml @@ -29,10 +29,10 @@ requirements: _permission: 'administer account settings' -entity.user.administrator_role: +user.role.settings: path: '/admin/people/role-settings' defaults: - _form: '\Drupal\user\AdministratorRoleSettingsForm' + _form: '\Drupal\user\Form\RoleSettingsForm' _title: 'Role settings' requirements: _permission: 'administer account settings' only in patch2: unchanged: --- /dev/null +++ b/core/modules/user/src/Form/RoleSettingsForm.php @@ -0,0 +1,117 @@ +roleStorage = $role_storage; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('config.factory'), + $container->get('entity_type.manager')->getStorage('user_role') + ); + } + + /** + * {@inheritdoc} + */ + public function getFormId() { + return 'role_settings'; + } + + /** + * {@inheritdoc} + */ + protected function getEditableConfigNames() { + return [ + 'system.site', + 'user.mail', + 'user.settings', + ]; + } + + /** + * {@inheritdoc} + */ + public function buildForm(array $form, FormStateInterface $form_state) { + $form = parent::buildForm($form, $form_state); + + // Administrative role option. + $form['admin_role'] = [ + '#type' => 'details', + '#title' => $this->t('Administrator role'), + '#open' => TRUE, + ]; + // Do not allow users to set the anonymous or authenticated user roles as + // the administrator role. + $roles = user_role_names(TRUE); + unset($roles[RoleInterface::AUTHENTICATED_ID]); + $admin_roles = $this->roleStorage->getQuery() + ->condition('is_admin', TRUE) + ->execute(); + $default_value = reset($admin_roles); + $form['admin_role']['user_admin_role'] = [ + '#type' => 'select', + '#title' => $this->t('Administrator role'), + '#empty_value' => '', + '#default_value' => $default_value, + '#options' => $roles, + '#description' => $this->t('This role will be automatically assigned new permissions whenever a module is enabled. Changing this setting will not affect existing permissions.'), + // Don't allow to select a single admin role in case multiple roles got + // marked as admin role already. + '#access' => count($admin_roles) <= 1, + ]; + + return parent::buildForm($form, $form_state); + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + 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(); + } + } + parent::submitForm($form, $form_state); + } + +}