diff options
Diffstat (limited to 'plugins/Authentication')
-rw-r--r-- | plugins/Authentication/AuthenticationPlugin.php | 25 | ||||
-rw-r--r-- | plugins/Authentication/User_username.php | 21 |
2 files changed, 30 insertions, 16 deletions
diff --git a/plugins/Authentication/AuthenticationPlugin.php b/plugins/Authentication/AuthenticationPlugin.php index 99b61b808..a76848b04 100644 --- a/plugins/Authentication/AuthenticationPlugin.php +++ b/plugins/Authentication/AuthenticationPlugin.php @@ -70,7 +70,7 @@ abstract class AuthenticationPlugin extends Plugin * Automatically register a user when they attempt to login with valid credentials. * User::register($data) is a very useful method for this implementation * @param username - * @return boolean true if the user was created, false if not + * @return mixed instance of User, or false (if user couldn't be created) */ function autoRegister($username) { @@ -122,27 +122,20 @@ abstract class AuthenticationPlugin extends Plugin $authenticated = $this->checkPassword($nickname, $password); if($authenticated){ $authenticatedUser = User::staticGet('nickname', $nickname); - $user_username = new User_username(); - $user_username->user_id = $authenticatedUser->id; - $user_username->provider_name = $this->provider_name; - $user_username->username = $nickname; - $user_username->created = DB_DataObject_Cast::dateTime(); - $user_username->insert(); + User_username::register($authenticatedUser,$nickname,$this->provider_name); return false; } } }else{ if($this->autoregistration){ $authenticated = $this->checkPassword($nickname, $password); - if($authenticated && $this->autoregister($nickname)){ - $authenticatedUser = User::staticGet('nickname', $nickname); - $user_username = new User_username(); - $user_username->user_id = $authenticatedUser->id; - $user_username->provider_name = $this->provider_name; - $user_username->username = $nickname; - $user_username->created = DB_DataObject_Cast::dateTime(); - $user_username->insert(); - return false; + if($authenticated){ + $user = $this->autoregister($nickname); + if($user){ + $authenticatedUser = $user; + User_username::register($authenticatedUser,$nickname,$this->provider_name); + return false; + } } } } diff --git a/plugins/Authentication/User_username.php b/plugins/Authentication/User_username.php index 79adeb189..f30f60d83 100644 --- a/plugins/Authentication/User_username.php +++ b/plugins/Authentication/User_username.php @@ -22,4 +22,25 @@ class User_username extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + + /** + * Register a user with a username on a given provider + * @param User User object + * @param string username on the given provider + * @param provider_name string name of the provider + * @return mixed User_username instance if the registration succeeded, false if it did not + */ + static function register($user, $username, $provider_name) + { + $user_username = new User_username(); + $user_username->user_id = $user->id; + $user_username->provider_name = $provider_name; + $user_username->username = $username; + $user_username->created = DB_DataObject_Cast::dateTime(); + if($user_username->insert()){ + return $user_username; + }else{ + return false; + } + } } |