From c5761243c13e79ac73822b0ccdc04ebe4943dd6c Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Thu, 30 Jul 2015 11:35:28 +0200 Subject: [PATCH] Wizard: Apply initial administrative rights for groups refs #9609 --- .../Setup/Steps/AuthenticationStep.php | 56 ++++++++++++++----- modules/setup/library/Setup/WebWizard.php | 20 ++++--- 2 files changed, 53 insertions(+), 23 deletions(-) diff --git a/modules/setup/library/Setup/Steps/AuthenticationStep.php b/modules/setup/library/Setup/Steps/AuthenticationStep.php index 266a162c6..decf3b454 100644 --- a/modules/setup/library/Setup/Steps/AuthenticationStep.php +++ b/modules/setup/library/Setup/Steps/AuthenticationStep.php @@ -62,14 +62,24 @@ class AuthenticationStep extends Step protected function createRolesIni() { - $config = array(); - $config['admins'] = array( - 'users' => $this->data['adminAccountData']['username'], - 'permissions' => '*' - ); + if (isset($this->data['adminAccountData']['username'])) { + $config = array( + 'users' => $this->data['adminAccountData']['username'], + 'permissions' => '*' + ); + + if ($this->data['backendConfig']['backend'] === 'db') { + $config['groups'] = mt('setup', 'Administrators', 'setup.role.name'); + } + } else { // isset($this->data['adminAccountData']['groupname']) + $config = array( + 'groups' => $this->data['adminAccountData']['groupname'], + 'permissions' => '*' + ); + } try { - Config::fromArray($config) + Config::fromArray(array(mt('setup', 'Administrators', 'setup.role.name') => $config)) ->setConfigFile(Config::resolvePath('roles.ini')) ->saveIni(); } catch (Exception $e) { @@ -147,13 +157,20 @@ class AuthenticationStep extends Step . '' . ''; - $adminHtml = '

' . (isset($this->data['adminAccountData']['resourceConfig']) ? sprintf( - mt('setup', 'Administrative rights will initially be granted to a new account called "%s".'), - $this->data['adminAccountData']['username'] - ) : sprintf( - mt('setup', 'Administrative rights will initially be granted to an existing account called "%s".'), - $this->data['adminAccountData']['username'] - )) . '

'; + if (isset($this->data['adminAccountData']['username'])) { + $adminHtml = '

' . (isset($this->data['adminAccountData']['resourceConfig']) ? sprintf( + mt('setup', 'Administrative rights will initially be granted to a new account called "%s".'), + $this->data['adminAccountData']['username'] + ) : sprintf( + mt('setup', 'Administrative rights will initially be granted to an existing account called "%s".'), + $this->data['adminAccountData']['username'] + )) . '

'; + } else { // isset($this->data['adminAccountData']['groupname']) + $adminHtml = '

' . sprintf( + mt('setup', 'Administrative rights will initially be granted to members of the user group "%s".'), + $this->data['adminAccountData']['groupname'] + ) . '

'; + } return $pageTitle . '
' . $backendDesc . $backendTitle . $backendHtml . '
' . '
' . $adminTitle . $adminHtml . '
'; @@ -190,14 +207,23 @@ class AuthenticationStep extends Step } if ($this->permIniError === false) { - $report[] = sprintf( + $report[] = isset($this->data['adminAccountData']['username']) ? sprintf( mt('setup', 'Account "%s" has been successfully defined as initial administrator.'), $this->data['adminAccountData']['username'] + ) : sprintf( + mt('setup', 'The members of the user group "%s" were successfully defined as initial administrators.'), + $this->data['adminAccountData']['groupname'] ); } elseif ($this->permIniError !== null) { - $report[] = sprintf( + $report[] = isset($this->data['adminAccountData']['username']) ? sprintf( mt('setup', 'Unable to define account "%s" as initial administrator. An error occured:'), $this->data['adminAccountData']['username'] + ) : sprintf( + mt( + 'setup', + 'Unable to define the members of the user group "%s" as initial administrators. An error occured:' + ), + $this->data['adminAccountData']['groupname'] ); $report[] = sprintf(mt('setup', 'ERROR: %s'), $this->permIniError->getMessage()); } diff --git a/modules/setup/library/Setup/WebWizard.php b/modules/setup/library/Setup/WebWizard.php index 5da1739c9..48b524b48 100644 --- a/modules/setup/library/Setup/WebWizard.php +++ b/modules/setup/library/Setup/WebWizard.php @@ -434,14 +434,18 @@ class WebWizard extends Wizard implements SetupWizard ); $adminAccountType = $pageData['setup_admin_account']['user_type']; - $adminAccountData = array('username' => $pageData['setup_admin_account'][$adminAccountType]); - if ($adminAccountType === 'new_user' && !$pageData['setup_auth_db_resource']['skip_validation'] - && (! isset($pageData['setup_auth_db_creation']) - || !$pageData['setup_auth_db_creation']['skip_validation'] - ) - ) { - $adminAccountData['resourceConfig'] = $pageData['setup_auth_db_resource']; - $adminAccountData['password'] = $pageData['setup_admin_account']['new_user_password']; + if ($adminAccountType === 'user_group') { + $adminAccountData = array('groupname' => $pageData['setup_admin_account'][$adminAccountType]); + } else { + $adminAccountData = array('username' => $pageData['setup_admin_account'][$adminAccountType]); + if ($adminAccountType === 'new_user' && !$pageData['setup_auth_db_resource']['skip_validation'] + && (! isset($pageData['setup_auth_db_creation']) + || !$pageData['setup_auth_db_creation']['skip_validation'] + ) + ) { + $adminAccountData['resourceConfig'] = $pageData['setup_auth_db_resource']; + $adminAccountData['password'] = $pageData['setup_admin_account']['new_user_password']; + } } $authType = $pageData['setup_authentication_type']['type']; $setup->addStep(