Proyectos de Subversion LeadersLinked - Services

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

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