Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3639 | Ir a la última revisión | | 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
 
32
 
33
    /**
34
     *
35
     * @param AdapterInterface $adapter
36
     */
37
    public function __construct(AdapterInterface $adapter)
38
    {
39
        $this->adapter = $adapter;
40
    }
41
 
42
    /**
43
     *
44
     * @param string $email
45
     */
46
    public function setData($email)
47
    {
48
        $this->email = $email;
49
    }
50
 
51
    /**
52
     *
53
     * {@inheritDoc}
54
     * @see \Laminas\Authentication\Adapter\AdapterInterface::authenticate()
55
     */
56
    public function authenticate()
57
    {
58
 
59
        $userMapper = UserMapper::getInstance($this->adapter);
60
        $user = $userMapper->fetchOneByEmail($this->email);
61
 
62
        if($user) {
63
 
64
 
65
            if(User::EMAIL_VERIFIED_NO == $user->email_verified) {
66
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_EMAIL_HASNT_BEEN_VARIFIED']);
67
            }
68
            if(User::BLOCKED_YES == $user->blocked) {
69
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_BLOCKED']);
70
            }
71
 
72
            if(User::STATUS_INACTIVE == $user->status) {
73
                return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_INACTIVE']);
74
            }
75
 
76
            $user->login_attempt = 0;
77
            $userMapper->update($user);
78
 
79
            $data = [
80
                'user_id' => $user->id,
81
                'device_id' => '',
82
            ];
83
 
84
 
85
            return new Result(Result::SUCCESS, $data, []);
86
        } else {
87
            return new Result(Result::FAILURE, null, ['ERROR_USER_NOT_FOUND']);
88
        }
89
    }
90
}