aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/acp/acp_board.php35
-rw-r--r--phpBB/includes/auth/provider_apache.php2
-rw-r--r--phpBB/includes/auth/provider_db.php2
-rw-r--r--phpBB/includes/auth/provider_interface.php2
-rw-r--r--phpBB/includes/auth/provider_ldap.php4
5 files changed, 22 insertions, 23 deletions
diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php
index 6881e03fdb..9407d81575 100644
--- a/phpBB/includes/acp/acp_board.php
+++ b/phpBB/includes/acp/acp_board.php
@@ -530,9 +530,9 @@ class acp_board
{
while (($file = readdir($dp)) !== false)
{
- if (preg_match('#^auth_(.*?)\.' . $phpEx . '$#', $file))
+ if (preg_match('#^provider_(.*?)\.' . $phpEx . '$#', $file) && !preg_match('#^provider_interface\.' . $phpEx . '$#', $file))
{
- $auth_plugins[] = basename(preg_replace('#^auth_(.*?)\.' . $phpEx . '$#', '\1', $file));
+ $auth_plugins[] = basename(preg_replace('#^provider_(.*?)\.' . $phpEx . '$#', '\1', $file));
}
}
closedir($dp);
@@ -544,14 +544,13 @@ class acp_board
$old_auth_config = array();
foreach ($auth_plugins as $method)
{
- if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
+ if ($method)
{
- include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
-
- $method = 'acp_' . $method;
- if (function_exists($method))
+ $class = 'phpbb_auth_provider_' . $method;
+ if (class_exists($class))
{
- if ($fields = $method($this->new_config))
+ $provider = new $class();
+ if ($fields = $provider->acp($this->new_config))
{
// Check if we need to create config fields for this plugin and save config when submit was pressed
foreach ($fields['config'] as $field)
@@ -585,14 +584,13 @@ class acp_board
if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
{
$method = basename($cfg_array['auth_method']);
- if ($method && in_array($method, $auth_plugins))
+ if ($method)
{
- include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
-
- $method = 'init_' . $method;
- if (function_exists($method))
+ $class = 'phpbb_auth_provider_' . $method;
+ if (class_exists($class))
{
- if ($error = $method())
+ $provider = new $class();
+ if ($error = $provider->init())
{
foreach ($old_auth_config as $config_name => $config_value)
{
@@ -685,12 +683,13 @@ class acp_board
foreach ($auth_plugins as $method)
{
- if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
+ if ($method)
{
- $method = 'acp_' . $method;
- if (function_exists($method))
+ $class = 'phpbb_auth_provider_' . $method;
+ if (class_exists($class))
{
- $fields = $method($this->new_config);
+ $provider = new $class();
+ $fields = $provider->acp($this->new_config);
if ($fields['tpl'])
{
diff --git a/phpBB/includes/auth/provider_apache.php b/phpBB/includes/auth/provider_apache.php
index a923fb4265..2d26b85877 100644
--- a/phpBB/includes/auth/provider_apache.php
+++ b/phpBB/includes/auth/provider_apache.php
@@ -258,7 +258,7 @@ class phpbb_auth_provider_apache implements phpbb_auth_provider_interface
return false;
}
- public function acp()
+ public function acp($new)
{
return;
}
diff --git a/phpBB/includes/auth/provider_db.php b/phpBB/includes/auth/provider_db.php
index 60ea105236..df935fcd73 100644
--- a/phpBB/includes/auth/provider_db.php
+++ b/phpBB/includes/auth/provider_db.php
@@ -298,7 +298,7 @@ class phpbb_auth_provider_db implements phpbb_auth_provider_interface
return;
}
- public function acp()
+ public function acp($new)
{
return;
}
diff --git a/phpBB/includes/auth/provider_interface.php b/phpBB/includes/auth/provider_interface.php
index 3dd1dba9be..a789dccce7 100644
--- a/phpBB/includes/auth/provider_interface.php
+++ b/phpBB/includes/auth/provider_interface.php
@@ -58,5 +58,5 @@ interface phpbb_auth_provider_interface
* This function is used to output any required fields in the authentication
* admin panel. It also defines any required configuration table fields.
*/
- public function acp();
+ public function acp($new);
}
diff --git a/phpBB/includes/auth/provider_ldap.php b/phpBB/includes/auth/provider_ldap.php
index 4d0e68233b..c1f5b3e186 100644
--- a/phpBB/includes/auth/provider_ldap.php
+++ b/phpBB/includes/auth/provider_ldap.php
@@ -22,7 +22,7 @@ if (!defined('IN_PHPBB'))
*
* @package auth
*/
-class phpbb_auth_provider_db implements phpbb_auth_provider_interface
+class phpbb_auth_provider_ldap implements phpbb_auth_provider_interface
{
/**
* Connect to ldap server
@@ -284,7 +284,7 @@ class phpbb_auth_provider_db implements phpbb_auth_provider_interface
* This function is used to output any required fields in the authentication
* admin panel. It also defines any required configuration table fields.
*/
- public function acp(&$new)
+ public function acp($new)
{
global $user;