Rev 23 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
declare(strict_types = 1);
namespace LeadersLinked\Authentication;
use Laminas\Authentication\Adapter\AdapterInterface as AuthAdapterInterface;
use Laminas\Authentication\Result;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Log\LoggerInterface;
use LeadersLinked\Model\User;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Library\Functions;
use LeadersLinked\Mapper\DeviceMapper;
use LeadersLinked\Mapper\DeviceHistoryMapper;
use LeadersLinked\Model\DeviceHistory;
class AuthUserIdAdapter implements AuthAdapterInterface
{
/**
*
* @var AdapterInterface
*/
private $adapter;
/**
*
* @var int
*/
private $user_id;
/**
*
* @param AdapterInterface $adapter
*/
public function __construct(AdapterInterface $adapter)
{
$this->adapter = $adapter;
}
/**
*
* @param int $user_id
*/
public function setData($user_id)
{
$this->user_id = $user_id;
}
/**
*
* {@inheritdoc}
* @see \Laminas\Authentication\Adapter\AdapterInterface::authenticate()
*/
public function authenticate()
{
$userMapper = UserMapper::getInstance($this->adapter);
$user = $userMapper->fetchOne($this->user_id);
if (User::BLOCKED_YES == $user->blocked) {
return new Result(Result::FAILURE_UNCATEGORIZED, null, [
'ERROR_USER_IS_BLOCKED'
]);
}
if (User::STATUS_INACTIVE == $user->status) {
return new Result(Result::FAILURE_UNCATEGORIZED, null, [
'ERROR_USER_IS_INACTIVE'
]);
}
if (User::REQUEST_ACCESS_PENDING == $user->request_access) {
return new Result(Result::FAILURE_UNCATEGORIZED, null, [
'ERROR_USER_REQUEST_ACCESS_IS_PENDING'
]);
}
if (User::REQUEST_ACCESS_REJECTED == $user->request_access) {
return new Result(Result::FAILURE_UNCATEGORIZED, null, [
'ERROR_USER_REQUEST_ACCESS_IS_REJECTED'
]);
}
$data = [
'user_id' => $user->id
];
return new Result(Result::SUCCESS, $data, []);
}
}