2014-10-22 19:59:09 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Auth;
|
|
|
|
|
|
|
|
use Model\User;
|
2014-11-23 20:13:38 +01:00
|
|
|
use Core\Request;
|
2014-10-22 19:59:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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'],
|
2014-11-23 20:13:38 +01:00
|
|
|
Request::getIpAddress(),
|
|
|
|
Request::getUserAgent()
|
2014-10-22 19:59:09 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|