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)
|
|
|
|
{
|
2015-02-25 17:29:06 +01:00
|
|
|
$user = $this->db
|
|
|
|
->table(User::TABLE)
|
|
|
|
->eq('username', $username)
|
|
|
|
->eq('disable_login_form', 0)
|
|
|
|
->eq('is_ldap_user', 0)
|
|
|
|
->findOne();
|
2014-10-22 19:59:09 +02:00
|
|
|
|
2015-02-25 17:29:06 +01:00
|
|
|
if (is_array($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;
|
|
|
|
}
|
|
|
|
}
|