|
<?php |
|
|
|
namespace Kanboard\Auth; |
|
|
|
use Kanboard\Core\Base; |
|
use Kanboard\Core\Security\PasswordAuthenticationProviderInterface; |
|
use Kanboard\Core\Security\SessionCheckProviderInterface; |
|
use Kanboard\Model\UserModel; |
|
use Kanboard\User\DatabaseUserProvider; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DatabaseAuth extends Base implements PasswordAuthenticationProviderInterface, SessionCheckProviderInterface |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
protected $userInfo = array(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected $username = ''; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected $password = ''; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getName() |
|
{ |
|
return 'Database'; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function authenticate() |
|
{ |
|
$user = $this->db |
|
->table(UserModel::TABLE) |
|
->columns('id', 'password') |
|
->eq('username', $this->username) |
|
->eq('disable_login_form', 0) |
|
->eq('is_ldap_user', 0) |
|
->eq('is_active', 1) |
|
->findOne(); |
|
|
|
if (! empty($user) && password_verify($this->password, $user['password'])) { |
|
$this->userInfo = $user; |
|
return true; |
|
} |
|
|
|
return false; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function isValidSession() |
|
{ |
|
return $this->userModel->isValidSession($this->userSession->getId(), $this->userSession->getRole()); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getUser() |
|
{ |
|
if (empty($this->userInfo)) { |
|
return null; |
|
} |
|
|
|
return new DatabaseUserProvider($this->userInfo); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function setUsername($username) |
|
{ |
|
$this->username = $username; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function setPassword($password) |
|
{ |
|
$this->password = $password; |
|
} |
|
} |
|
|