1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-18 21:39:52 +02:00

[feature/auth-refactor] Finish refactoring auth plugins

I believe that this commit should have final minimal changes needed
to replace the old auth plugins with the refactored auth plugins.
Added a few more elements to the interface based on the old auth
plugins. Documentation is not complete and need works on these new
elements.

PHPBB3-9734
This commit is contained in:
Joseph Warner 2013-06-19 15:32:20 -04:00
parent f4def220ce
commit 8214e6e837
5 changed files with 55 additions and 10 deletions

View File

@ -237,7 +237,7 @@ class phpbb_auth_provider_apache implements phpbb_auth_provider_interface
* @return boolean true if the given user is authenticated or false if * @return boolean true if the given user is authenticated or false if
* the session should be closed * the session should be closed
*/ */
public function validate_session(&$user) public function validate_session($user)
{ {
global $request; global $request;
@ -262,4 +262,9 @@ class phpbb_auth_provider_apache implements phpbb_auth_provider_interface
{ {
return; return;
} }
public function logout($data, $new_session)
{
return;
}
} }

View File

@ -302,4 +302,14 @@ class phpbb_auth_provider_db implements phpbb_auth_provider_interface
{ {
return; return;
} }
public function logout($data, $new_session)
{
return;
}
public function validate_session($user)
{
return;
}
} }

View File

@ -57,6 +57,25 @@ interface phpbb_auth_provider_interface
/** /**
* This function is used to output any required fields in the authentication * This function is used to output any required fields in the authentication
* admin panel. It also defines any required configuration table fields. * admin panel. It also defines any required configuration table fields.
*
* @param type $new
*/ */
public function acp($new); public function acp($new);
/**
* Special logout function.
*
* @param type $data
* @param type $new_session
*/
public function logout($data, $new_session);
/**
* The session validation function checks whether the user is still logged in.
*
* @param type $user
* @return boolean true if the given user is authenticated, false if the
* session should be closed, or null if not implemented.
*/
public function validate_session($user);
} }

View File

@ -358,4 +358,14 @@ class phpbb_auth_provider_ldap implements phpbb_auth_provider_interface
{ {
return str_replace(array('*', '\\', '(', ')'), array('\\*', '\\\\', '\\(', '\\)'), $string); return str_replace(array('*', '\\', '(', ')'), array('\\*', '\\\\', '\\(', '\\)'), $string);
} }
public function logout($data, $new_session)
{
return;
}
public function validate_session($user)
{
return;
}
} }

View File

@ -402,12 +402,13 @@ class phpbb_session
// Check whether the session is still valid if we have one // Check whether the session is still valid if we have one
$method = basename(trim($config['auth_method'])); $method = basename(trim($config['auth_method']));
include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
$method = 'validate_session_' . $method; $class = 'phpbb_auth_provider_' . $method;
if (function_exists($method)) if (class_exists($class))
{ {
if (!$method($this->data)) $provider = new $class();
$ret = $provider->validate_session($this->data);
if ($ret !== null && !$ret)
{ {
$session_expired = true; $session_expired = true;
} }
@ -573,7 +574,7 @@ class phpbb_session
if (class_exists($class)) if (class_exists($class))
{ {
$provider = new $class(); $provider = new $class();
$this->data = $class->autologin(); $this->data = $provider->autologin();
if (sizeof($this->data)) if (sizeof($this->data))
{ {
@ -893,12 +894,12 @@ class phpbb_session
// Allow connecting logout with external auth method logout // Allow connecting logout with external auth method logout
$method = basename(trim($config['auth_method'])); $method = basename(trim($config['auth_method']));
include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
$method = 'logout_' . $method; $class = 'phpbb_auth_provider_' . $method;
if (function_exists($method)) if (class_exists($class))
{ {
$method($this->data, $new_session); $provider = new $class();
$provider->logout($this->data, $new_session);
} }
if ($this->data['user_id'] != ANONYMOUS) if ($this->data['user_id'] != ANONYMOUS)