2014-10-22 19:59:09 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Auth;
|
|
|
|
|
|
|
|
use Model\User;
|
2015-01-16 14:23:05 +01:00
|
|
|
use Event\AuthEvent;
|
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'])) {
|
2015-01-16 14:23:05 +01:00
|
|
|
$this->userSession->refresh($user);
|
|
|
|
$this->container['dispatcher']->dispatch('auth.success', new AuthEvent(self::AUTH_NAME, $user['id']));
|
2014-10-22 19:59:09 +02:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|