Rev 17002 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Plugin;
use Laminas\Mvc\Controller\Plugin\AbstractPlugin;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Authentication\AuthenticationService;
use LeadersLinked\Model\Device;
use LeadersLinked\Mapper\DeviceMapper;
use LeadersLinked\Model\UserType;
use LeadersLinked\Mapper\CompanyMapper;
class CurrentUserPlugin extends AbstractPlugin
{
/**
*
* @var AuthenticationService
*/
protected $auth;
/**
*
* @var boolean
*/
protected $hasIdentity;
/**
*
* @return \LeadersLinked\Model\User
*/
protected $user;
/***
*
* @var \LeadersLinked\Model\Company
*/
protected $company;
/**
*
* @param AdapterInterface $adapter
*/
public function __construct($adapter)
{
$this->auth = new \Laminas\Authentication\AuthenticationService();
$this->hasIdentity = false;
if($this->auth->hasIdentity()) {
$identity = $this->auth->getIdentity();
$userMapper = \LeadersLinked\Mapper\UserMapper::getInstance($adapter);
$this->user = $userMapper->fetchOne($identity['user_id']);
if($this->user) {
$this->hasIdentity = true;
if($identity['company_id']) {
$companyMapper = CompanyMapper::getInstance($adapter);
$this->company = $companyMapper->fetchOne($identity['company_id']);
}
}
}
}
/**
*
* @return \LeadersLinked\Model\User
*/
public function getUser()
{
return $this->user;
}
/**
*
* @return string
*/
public function getDeviceId()
{
return $this->deviceId;
}
/**
*
* @return int
*/
public function getUserId()
{
if($this->hasIdentity) {
return $this->user->id;
} else {
return 0;
}
}
/**
* @return string
*/
public function getUserTypeId()
{
if($this->hasIdentity) {
return $this->user->usertype_id;
} else {
return UserType::GUEST;
}
}
/**
*
* @return \LeadersLinked\Model\Company
*/
public function getCompany()
{
return $this->company;
}
public function getCompanyId()
{
if($this->company) {
} else {
return 0;
}
}
/**
*
* @return boolean
*/
public function hasIdentity()
{
return $this->user ? true : false;
}
public function clearIdentity()
{
$this->auth->clearIdentity();
}
}