Proyectos de Subversion LeadersLinked - Backend

Rev

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
 
63
        if(User::EMAIL_VERIFIED_NO == $user->email_verified) {
64
            return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_EMAIL_HASNT_BEEN_VARIFIED']);
65
        }
66
        if(User::BLOCKED_YES == $user->blocked) {
67
            return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_BLOCKED']);
68
        }
69
 
70
        if(User::STATUS_INACTIVE == $user->status) {
71
            return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_INACTIVE']);
72
        }
73
 
74
        $user->login_attempt = 0;
75
        $userMapper->update($user);
76
 
77
        $data = [
78
            'user_id' => $user->id,
79
            'company_id' =>  0,
80
        ];
81
 
82
        return new Result(Result::SUCCESS, $data, []);
83
    }
84
}