Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15342 | 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\NetworkMapper;


class CurrentNetworkPlugin extends AbstractPlugin
{
    
    /**
     * 
     * @var \LeadersLinked\Plugin\CurrentNetworkPlugin
     */
    private static $_instance;
    
    
    /**
     *
     * @var boolean
     */
    private $hasNetwork;
    
    
    
    /**
     *
     * @return \LeadersLinked\Model\Network
     */
    private $network;
    
    /**
     * 
     * @param AdapterInterface $adapter
     * @return \LeadersLinked\Plugin\CurrentNetworkPlugin
     */
    public static function getInstance($adapter)
    {
        if(self::$_instance == null) {
            self::$_instance = new CurrentNetworkPlugin($adapter);
        }
        return self::$_instance;
    }
    

    
    /**
     *
     * @param AdapterInterface $adapter
     */
    private function __construct($adapter) 
    {
        
        $this->hasNetwork = false;
        $hostname = empty($_SERVER['HTTP_HOST']) ?  '' : $_SERVER['HTTP_HOST'];
        
        $networkMapper = NetworkMapper::getInstance($adapter);
        $this->network = $networkMapper->fetchOneByHostnameForBackend($hostname);
        if($this->network) {
            $this->hasNetwork = true;
        }
        
    }


    /**
     * 
     * @return \LeadersLinked\Model\Network
     */
    public function getNetwork() 
    {
    
        if($this->hasNetwork) {
            return $this->network;
        } else {
            
            return null;
        }
    }
   
    
    /**
     * 
     * @return int
     */
    public function getNetworkId()
    {
        if($this->hasNetwork) {
           return $this->network->id;
           
        } else {
            return 0;
        }
    }
    
   
    /**
     * 
     * @return boolean
     */
    public function hasNetwork() 
    {
        return $this->hasNetwork;
    }
    


   
}