Rev 1 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Authentication;use Laminas\Authentication\Adapter\AdapterInterface as AuthAdapterInterface;use Laminas\Authentication\Result;use Laminas\Db\Adapter\AdapterInterface;use LeadersLinked\Model\User;use LeadersLinked\Mapper\UserMapper;class AuthEmailAdapter implements AuthAdapterInterface{/**** @var AdapterInterface*/private $adapter;/**** @var string*/private $email;/**** @param AdapterInterface $adapter*/public function __construct(AdapterInterface $adapter){$this->adapter = $adapter;}/**** @param string $email*/public function setData($email){$this->email = $email;}/**** {@inheritDoc}* @see \Laminas\Authentication\Adapter\AdapterInterface::authenticate()*/public function authenticate(){$userMapper = UserMapper::getInstance($this->adapter);$user = $userMapper->fetchOneByEmail($this->email);if(User::EMAIL_VERIFIED_NO == $user->email_verified) {return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_EMAIL_HASNT_BEEN_VARIFIED']);}if(User::BLOCKED_YES == $user->blocked) {return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_BLOCKED']);}if(User::STATUS_INACTIVE == $user->status) {return new Result(Result::FAILURE_UNCATEGORIZED, null, ['ERROR_USER_IS_INACTIVE']);}$user->login_attempt = 0;$userMapper->update($user);$data = ['user_id' => $user->id,'company_id' => 0,];return new Result(Result::SUCCESS, $data, []);}}