Proyectos de Subversion LeadersLinked - Services

Rev

Rev 23 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
23 efrain 1
<?php
345 www 2
declare(strict_types = 1);
23 efrain 3
namespace LeadersLinked\Authentication;
4
 
345 www 5
use Laminas\Authentication\Adapter\AdapterInterface as AuthAdapterInterface;
23 efrain 6
use Laminas\Authentication\Result;
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Log\LoggerInterface;
9
use LeadersLinked\Model\User;
10
use LeadersLinked\Mapper\UserMapper;
11
use LeadersLinked\Library\Functions;
12
use LeadersLinked\Mapper\DeviceMapper;
13
use LeadersLinked\Mapper\DeviceHistoryMapper;
14
use LeadersLinked\Model\DeviceHistory;
15
 
16
class AuthUserIdAdapter implements AuthAdapterInterface
17
{
345 www 18
 
23 efrain 19
    /**
20
     *
21
     * @var AdapterInterface
22
     */
23
    private $adapter;
24
 
25
    /**
345 www 26
     *
23 efrain 27
     * @var int
28
     */
29
    private $user_id;
30
 
31
    /**
345 www 32
     *
23 efrain 33
     * @param AdapterInterface $adapter
34
     */
35
    public function __construct(AdapterInterface $adapter)
36
    {
345 www 37
        $this->adapter = $adapter;
23 efrain 38
    }
39
 
40
    /**
345 www 41
     *
23 efrain 42
     * @param int $user_id
43
     */
44
    public function setData($user_id)
45
    {
46
        $this->user_id = $user_id;
47
    }
345 www 48
 
23 efrain 49
    /**
345 www 50
     *
51
     * {@inheritdoc}
23 efrain 52
     * @see \Laminas\Authentication\Adapter\AdapterInterface::authenticate()
53
     */
54
    public function authenticate()
55
    {
56
        $userMapper = UserMapper::getInstance($this->adapter);
57
        $user = $userMapper->fetchOne($this->user_id);
58
 
345 www 59
        if (User::BLOCKED_YES == $user->blocked) {
60
            return new Result(Result::FAILURE_UNCATEGORIZED, null, [
61
                'ERROR_USER_IS_BLOCKED'
62
            ]);
23 efrain 63
        }
345 www 64
 
65
        if (User::STATUS_INACTIVE == $user->status) {
66
            return new Result(Result::FAILURE_UNCATEGORIZED, null, [
67
                'ERROR_USER_IS_INACTIVE'
68
            ]);
23 efrain 69
        }
345 www 70
 
71
        if (User::REQUEST_ACCESS_PENDING == $user->request_access) {
72
            return new Result(Result::FAILURE_UNCATEGORIZED, null, [
73
                'ERROR_USER_REQUEST_ACCESS_IS_PENDING'
74
            ]);
23 efrain 75
        }
345 www 76
 
77
        if (User::REQUEST_ACCESS_REJECTED == $user->request_access) {
78
            return new Result(Result::FAILURE_UNCATEGORIZED, null, [
79
                'ERROR_USER_REQUEST_ACCESS_IS_REJECTED'
80
            ]);
81
        }
82
 
23 efrain 83
        $data = [
345 www 84
            'user_id' => $user->id
23 efrain 85
        ];
345 www 86
 
23 efrain 87
        return new Result(Result::SUCCESS, $data, []);
88
    }
89
}