Proyectos de Subversion LeadersLinked - Services

Rev

Rev 187 | Rev 283 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Plugin;
6
 
7
use Laminas\Mvc\Controller\Plugin\AbstractPlugin;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use Laminas\Authentication\AuthenticationService;
10
use LeadersLinked\Model\Device;
11
use LeadersLinked\Mapper\DeviceMapper;
12
use LeadersLinked\Model\UserType;
13
use LeadersLinked\Mapper\NetworkMapper;
14
 
15
 
16
class CurrentNetworkPlugin extends AbstractPlugin
17
{
18
 
19
    /**
20
     *
21
     * @var boolean
22
     */
23
    protected $hasNetwork;
24
 
25
 
26
 
27
    /**
28
     *
29
     * @return \LeadersLinked\Model\Network
30
     */
31
    protected $network;
32
 
33
 
34
    /**
35
     *
36
     * @var string
37
     */
38
    protected $hostname;
39
 
40
    /**
41
     *
42
     * @param AdapterInterface $adapter
43
     */
44
    public function __construct($adapter)
45
    {
164 efrain 46
 
1 efrain 47
 
164 efrain 48
 
49
 
50
 
51
 
1 efrain 52
        $this->hasNetwork = false;
188 efrain 53
        $networkMapper = NetworkMapper::getInstance($adapter);
1 efrain 54
 
20 efrain 55
 
185 efrain 56
        $request_uri = empty($_SERVER['REQUEST_URI']) ? '' : $_SERVER['REQUEST_URI'];
187 efrain 57
        if($request_uri) {
58
 
59
            if(substr($request_uri, 0, 1) == '/') {
60
                $request_uri = substr($request_uri, 1);
61
            }
62
 
188 efrain 63
            $parts = explode('/', $request_uri);
64
            if($parts[0] == 'services') {
65
 
66
                $this->network = $networkMapper->fetchOneByDefault();
67
                if($this->network) {
68
                    $this->hostname = $this->network->main_hostname;
69
                    $this->hasNetwork = true;
70
                }
71
            }
164 efrain 72
 
187 efrain 73
 
188 efrain 74
 
186 efrain 75
 
187 efrain 76
        }
188 efrain 77
 
78
        if(!$this->hasNetwork) {
79
 
80
            $hostname = empty($_SERVER['HTTP_ORIGIN']) ? '' : $_SERVER['HTTP_ORIGIN'];
81
 
82
            if(empty($hostname)) {
83
 
84
                $hostname = empty($_SERVER['HTTP_REFERER']) ?  '' : $_SERVER['HTTP_REFERER'];
85
 
86
                if(empty($hostname)) {
87
                    $hostname = empty($_SERVER['HTTP_HOST']) ?  '' : $_SERVER['HTTP_HOST'];
185 efrain 88
 
188 efrain 89
                }
90
            }
154 efrain 91
 
188 efrain 92
            $hostname = trim(str_replace(['https://', 'http://'], '', $hostname));
93
 
94
 
95
            //echo $hostname; exit;
96
 
154 efrain 97
 
188 efrain 98
            $parts = explode('/', $hostname);
99
 
100
 
101
 
102
            $hostname = $parts > 1 ? $parts[0] : $hostname;
103
 
104
            $networkMapper = NetworkMapper::getInstance($adapter);
105
            $this->network = $networkMapper->fetchOneByHostnameForFrontend($hostname);
106
 
107
 
108
            if($this->network) {
109
 
110
                $this->hostname = $this->network->main_hostname == $hostname ?  $this->network->main_hostname : $this->network->alternative_hostname;
111
                $this->hasNetwork = true;
154 efrain 112
            }
18 efrain 113
        }
1 efrain 114
    }
115
 
116
    /**
117
     *
118
     * @return \LeadersLinked\Model\Network
119
     */
120
    public function getNetwork()
121
    {
122
        if($this->hasNetwork) {
123
            return $this->network;
124
        } else {
125
            return null;
126
        }
127
    }
128
 
129
    /**
130
     *
131
     * @return int
132
     */
133
    public function getNetworkId()
134
    {
135
        if($this->hasNetwork) {
136
           return $this->network->id;
137
 
138
        } else {
139
            return 0;
140
        }
141
    }
142
 
143
 
144
    /**
145
     *
146
     * @return boolean
147
     */
148
    public function hasNetwork()
149
    {
150
        return $this->hasNetwork;
151
    }
152
 
153
 
154
    public function getHostname() : string
155
    {
156
        return  $this->hostname;
157
    }
158
 
159
 
160
 
161
}