| <?php |
|
|
| namespace Kanboard\Auth; |
|
|
| use Kanboard\Core\Base; |
| use Kanboard\Core\Security\PasswordAuthenticationProviderInterface; |
| use Kanboard\Model\UserModel; |
| use Kanboard\User\DatabaseUserProvider; |
|
|
| |
| |
| |
| |
| |
| |
| class ApiAccessTokenAuth extends Base implements PasswordAuthenticationProviderInterface |
| { |
| |
| |
| |
| |
| |
| |
| protected $userInfo = array(); |
|
|
| |
| |
| |
| |
| |
| |
| protected $username = ''; |
|
|
| |
| |
| |
| |
| |
| |
| protected $password = ''; |
|
|
| |
| |
| |
| |
| |
| |
| public function getName() |
| { |
| return 'API Access Token'; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function authenticate() |
| { |
| if (session_get('scope') !== 'API') { |
| return false; |
| } |
|
|
| $user = $this->db |
| ->table(UserModel::TABLE) |
| ->columns('id', 'password') |
| ->eq('username', $this->username) |
| ->eq('api_access_token', $this->password) |
| ->notNull('api_access_token') |
| ->eq('is_active', 1) |
| ->findOne(); |
|
|
| if (! empty($user)) { |
| $this->userInfo = $user; |
| return true; |
| } |
|
|
| return false; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| 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; |
| } |
| } |
|
|