Archived
1
0
Fork 0

app/library/Auth.php: use Httpcp\Auth\Result

This commit is contained in:
Henrik Hautakoski 2018-08-17 16:53:57 +02:00
parent d4902331cf
commit 1e9203f35f
No known key found for this signature in database
GPG key ID: 839F3A7EAFAEAFAA

View file

@ -2,9 +2,10 @@
namespace Httpcb; namespace Httpcb;
use Httpcb\OAuth\UserData\UserDataInterface; use App\Model\Data\User,
use Phalcon\Mvc\User\Component; Httpcb\OAuth\UserData\UserDataInterface,
use App\Model\Data\User; Httpcb\Auth\Result,
Phalcon\Mvc\User\Component;
class Auth extends Component class Auth extends Component
{ {
@ -18,7 +19,7 @@ class Auth extends Component
* *
* @param string $email_username * @param string $email_username
* @param string $password * @param string $password
* @return bool * @return Result
*/ */
public function login($email_username, $password) public function login($email_username, $password)
{ {
@ -26,6 +27,11 @@ class Auth extends Component
$user = User::findFirstByUsernameOrEmail($email_username); $user = User::findFirstByUsernameOrEmail($email_username);
if ($user) { if ($user) {
if ($user->status == User::STATUS_SUSPENDED) {
return new Result(Result::FAILURE_ACCOUNT_SUSPENDED);
}
// Verify password // Verify password
$hash = $user->getPassword(); $hash = $user->getPassword();
if (strlen($hash) > 1 && $this->security->checkHash($password, $hash)) { if (strlen($hash) > 1 && $this->security->checkHash($password, $hash)) {
@ -34,25 +40,28 @@ class Auth extends Component
$this->eventsManager->fire('auth:onLogin', $this, 'password'); $this->eventsManager->fire('auth:onLogin', $this, 'password');
return true; return new Result(Result::SUCCESS);
} }
return new Result(Result::FAILURE_INVALID_CREDENTIALS);
} }
return false; return new Result(Result::FAILURE_IDENTITY_NOT_FOUND);
} }
/** /**
* Login using OAuth * Login using OAuth
* *
* @param UserDataInterface $data * @param UserDataInterface $data
* @return bool * @return Result
*/ */
public function loginOauth(UserDataInterface $data) public function loginOauth(UserDataInterface $data)
{ {
$user = User::findFirstByOAuthID($data); $user = User::findFirstByOAuthID($data);
// Did not find any user. // Did not find any user.
if (!$user) { if ($user) {
return false;
if ($user->getStatus() == User::STATUS_SUSPENDED) {
return new Result(Result::FAILURE_ACCOUNT_SUSPENDED);
} }
$this->setIdentity($user->getId()); $this->setIdentity($user->getId());
@ -60,7 +69,10 @@ class Auth extends Component
$this->eventsManager->fire('auth:onLogin', $this, $this->eventsManager->fire('auth:onLogin', $this,
"OAuth {$data->getProvider()}"); "OAuth {$data->getProvider()}");
return true;
return new Result(Result::SUCCESS);
}
return new Result(Result::FAILURE_IDENTITY_NOT_FOUND);
} }
/** /**