1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

- Added init_{$auth_plugin} function which can be used to test a connection to the authentication system before actually saving the new configuration. This will hopefully stop people from locking themselves out by using an authentication system that they cannot connect to.

git-svn-id: file:///svn/phpbb/trunk@5653 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Nils Adermann
2006-03-18 16:19:18 +00:00
parent 9f7bc93125
commit 957502a28b
3 changed files with 88 additions and 7 deletions

View File

@@ -282,6 +282,11 @@ class acp_board
continue;
}
if ($config_name == 'auth_method')
{
continue;
}
$config_value = $cfg_array[$config_name];
$this->new_config[$config_name] = $config_value;
@@ -313,6 +318,8 @@ class acp_board
sort($auth_plugins);
$updated_auth_settings = false;
$old_auth_config = array();
foreach ($auth_plugins as $method)
{
if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
@@ -337,11 +344,13 @@ class acp_board
continue;
}
$old_auth_config[$field] = $this->new_config[$field];
$config_value = $cfg_array[$field];
$this->new_config[$field] = $config_value;
if ($submit)
{
$updated_auth_settings = true;
set_config($field, $config_value);
}
}
@@ -350,6 +359,33 @@ class acp_board
}
}
}
if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
{
$method = $cfg_array['auth_method'];
if ($method && in_array($method, $auth_plugins))
{
include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
$method = 'init_' . $method;
if (function_exists($method))
{
if (($error = $method()) == true)
{
foreach ($old_auth_config as $config_name => $config_value)
{
set_config($config_name, $config_value);
}
trigger_error($error . adm_back_link($this->u_action));
}
}
set_config('auth_method', $cfg_array['auth_method']);
}
else
{
trigger_error('NO_AUTH_PLUGIN');
}
}
}
if ($submit)