diff options
| author | Frédéric Guillot <fred@kanboard.net> | 2014-08-16 13:59:37 -0700 |
|---|---|---|
| committer | Frédéric Guillot <fred@kanboard.net> | 2014-08-16 13:59:37 -0700 |
| commit | 925b0ba2e56117e3bbe2947d7938ed35815efa1a (patch) | |
| tree | 7c6f47dcaffa9bb03cbd0c807849fcbb82be3e1c /app/Auth/Database.php | |
| parent | 498408d5075cf0060e0f53e58261e6537e0f6080 (diff) | |
Authentication backends refactoring
Diffstat (limited to 'app/Auth/Database.php')
| -rw-r--r-- | app/Auth/Database.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/app/Auth/Database.php b/app/Auth/Database.php new file mode 100644 index 00000000..67881593 --- /dev/null +++ b/app/Auth/Database.php @@ -0,0 +1,52 @@ +<?php + +namespace Auth; + +use Model\User; + +/** + * Database authentication + * + * @package auth + * @author Frederic Guillot + */ +class Database extends Base +{ + /** + * Backend name + * + * @var string + */ + const AUTH_NAME = 'Database'; + + /** + * Authenticate a user + * + * @access public + * @param string $username Username + * @param string $password Password + * @return boolean + */ + public function authenticate($username, $password) + { + $user = $this->db->table(User::TABLE)->eq('username', $username)->eq('is_ldap_user', 0)->findOne(); + + if ($user && password_verify($password, $user['password'])) { + + // Update user session + $this->user->updateSession($user); + + // Update login history + $this->lastLogin->create( + self::AUTH_NAME, + $user['id'], + $this->user->getIpAddress(), + $this->user->getUserAgent() + ); + + return true; + } + + return false; + } +} |
