/** * authenticate * * @param Credential $credential * * @return integer */ public function authenticate(Credential $credential) { $loginName = $this->warder->getLoginName(); if (!$credential->{$loginName} || !$credential->password) { $this->status = Authentication::EMPTY_CREDENTIAL; return false; } /** @var UserData $user */ $user = User::get(array($loginName => $credential->{$loginName})); if ($user->isNull()) { $this->status = Authentication::USER_NOT_FOUND; return false; } if (!UserHelper::verifyPassword($credential->password, $user->password)) { $this->status = Authentication::INVALID_PASSWORD; return false; } $credential->bind($user); $this->status = Authentication::SUCCESS; return true; }
/** * processGithub * * @param \Hybrid_Provider_Adapter $adapter * @param Credential $credential * * @return Credential */ protected function processGitHub(\Hybrid_Provider_Adapter $adapter, Credential $credential) { $userProfile = $adapter->getUserProfile(); $loginName = $this->warder->getLoginName(); // Generate a temp username that usr can edit it later. if ($loginName != 'email') { $username = strtolower(str_replace(' ', '', $userProfile->displayName)) . '-' . $userProfile->identifier; $credential->{$loginName} = $username; } $credential->email = $userProfile->email; $credential->name = $userProfile->displayName; $credential->_loginName = 'email'; return $credential; }