Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
1 www 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\Model\UserProfile;
15
use LeadersLinked\Mapper\UserProfileMapper;
16
use LeadersLinked\Mapper\UserProviderMapper;
17
 
18
class AuthEmailAdapter implements AuthAdapterInterface
19
{
20
    /**
21
     *
22
     * @var AdapterInterface
23
     */
24
    private $adapter;
25
 
26
    /**
27
     *
28
     * @var string
29
     */
30
    private $email;
31
 
3639 efrain 32
    /**
33
     *
34
     * @var int
35
     */
36
    private $network_id;
37
 
1 www 38
 
39
    /**
40
     *
41
     * @param AdapterInterface $adapter
42
     */
43
    public function __construct(AdapterInterface $adapter)
44
    {
45
        $this->adapter = $adapter;
46
    }
47
 
48
    /**
49
     *
50
     * @param string $email
3639 efrain 51
     * @param int $network_id
52
     * @return null
1 www 53
     */
3639 efrain 54
    public function setData($email, $network_id)
1 www 55
    {
56
        $this->email = $email;
3639 efrain 57
        $this->network_id = $network_id;
1 www 58
    }
59
 
60
    /**
61
     *
62
     * {@inheritDoc}
63
     * @see \Laminas\Authentication\Adapter\AdapterInterface::authenticate()
64
     */
65
    public function authenticate()
66
    {
67
 
68
        $userMapper = UserMapper::getInstance($this->adapter);
3639 efrain 69
        $user = $userMapper->fetchOneByEmailAndNetworkId($this->email, $this->network_id);
1 www 70
 
71
        if($user) {
72
 
73
 
74
            if(User::EMAIL_VERIFIED_NO == $user->email_verified) {
75
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_EMAIL_HASNT_BEEN_VARIFIED']);
76
            }
77
            if(User::BLOCKED_YES == $user->blocked) {
78
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_BLOCKED']);
79
            }
80
 
81
            if(User::STATUS_INACTIVE == $user->status) {
82
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_INACTIVE']);
83
            }
4776 efrain 84
 
85
            if(User::REQUEST_ACCESS_PENDING == $user->request_access) {
86
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_REQUEST_ACCESS_IS_PENDING']);
87
            }
88
 
89
 
90
            if(User::REQUEST_ACCESS_REJECTED == $user->request_access) {
91
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_REQUEST_ACCESS_IS_REJECTED']);
92
            }
1 www 93
 
94
            $user->login_attempt = 0;
95
            $userMapper->update($user);
96
 
97
            $data = [
98
                'user_id' => $user->id,
99
                'device_id' => '',
100
            ];
101
 
102
 
103
            return new Result(Result::SUCCESS, $data, []);
104
        } else {
105
            return new Result(Result::FAILURE, null, ['ERROR_USER_NOT_FOUND']);
106
        }
107
    }
108
}