From b8f7532e5c7e8b8be3ab199fca3dadd0d22be4cd Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 3 Dec 2016 15:43:36 -0500 Subject: Add personal API access token --- app/Auth/ApiAccessTokenAuth.php | 119 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 app/Auth/ApiAccessTokenAuth.php (limited to 'app/Auth/ApiAccessTokenAuth.php') diff --git a/app/Auth/ApiAccessTokenAuth.php b/app/Auth/ApiAccessTokenAuth.php new file mode 100644 index 00000000..12ab21a7 --- /dev/null +++ b/app/Auth/ApiAccessTokenAuth.php @@ -0,0 +1,119 @@ +sessionStorage->scope) || $this->sessionStorage->scope !== 'API') { + $this->logger->debug(__METHOD__.': Authentication provider skipped because invalid scope'); + 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; + } + + /** + * Get user object + * + * @access public + * @return \Kanboard\User\DatabaseUserProvider + */ + public function getUser() + { + if (empty($this->userInfo)) { + return null; + } + + return new DatabaseUserProvider($this->userInfo); + } + + /** + * Set username + * + * @access public + * @param string $username + */ + public function setUsername($username) + { + $this->username = $username; + } + + /** + * Set password + * + * @access public + * @param string $password + */ + public function setPassword($password) + { + $this->password = $password; + } +} -- cgit v1.2.3