Allow an authentication plugin with the same provider_name other than the one that actually checked the password to autoregister a user
Allows for SSO-type plugins that don't have any information about the user other than their username to do autoregistration
This commit is contained in:
parent
783a2e249b
commit
e440b69e1a
|
@ -99,6 +99,23 @@ abstract class AuthenticationPlugin extends Plugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal AutoRegister event handler
|
||||||
|
* @param nickname
|
||||||
|
* @param provider_name
|
||||||
|
* @param user - the newly registered user
|
||||||
|
*/
|
||||||
|
function onAutoRegister($nickname, $provider_name, &$user)
|
||||||
|
{
|
||||||
|
if($provider_name == $this->provider_name && $this->autoregistration){
|
||||||
|
$user = $this->autoregister($nickname);
|
||||||
|
if($user){
|
||||||
|
User_username::register($user,$nickname,$this->provider_name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onStartCheckPassword($nickname, $password, &$authenticatedUser){
|
function onStartCheckPassword($nickname, $password, &$authenticatedUser){
|
||||||
//map the nickname to a username
|
//map the nickname to a username
|
||||||
$user_username = new User_username();
|
$user_username = new User_username();
|
||||||
|
@ -127,13 +144,10 @@ abstract class AuthenticationPlugin extends Plugin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if($this->autoregistration){
|
|
||||||
$authenticated = $this->checkPassword($nickname, $password);
|
$authenticated = $this->checkPassword($nickname, $password);
|
||||||
if($authenticated){
|
if($authenticated){
|
||||||
$user = $this->autoregister($nickname);
|
if(Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){
|
||||||
if($user){
|
if($authenticatedUser){
|
||||||
$authenticatedUser = $user;
|
|
||||||
User_username::register($authenticatedUser,$nickname,$this->provider_name);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user