Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3099 | Rev 3644 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3099 Rev 3639
Línea 16... Línea 16...
16
use LeadersLinked\Mapper\UserMapper;
16
use LeadersLinked\Mapper\UserMapper;
17
use LeadersLinked\Authentication\AuthTokenAdapter;
17
use LeadersLinked\Authentication\AuthTokenAdapter;
18
use Laminas\Authentication\AuthenticationService;
18
use Laminas\Authentication\AuthenticationService;
19
use Laminas\Permissions\Acl\Resource\GenericResource;
19
use Laminas\Permissions\Acl\Resource\GenericResource;
20
use LeadersLinked\Model\UserType;
20
use LeadersLinked\Model\UserType;
-
 
21
use LeadersLinked\Plugin\CurrentNetworkPlugin;
-
 
22
use LeadersLinked\Model\Network;
-
 
23
use LeadersLinked\Model\User;
-
 
24
use LeadersLinked\Mapper\CompanyUserMapper;
-
 
25
use LeadersLinked\Model\CompanyUser;
-
 
26
use LeadersLinked\Mapper\CompanyMapper;
Línea 21... Línea 27...
21
 
27
 
22
class Module 
28
class Module 
Línea 23... Línea 29...
23
{
29
{
Línea 38... Línea 44...
38
     * 
44
     * 
39
     * @var Acl
45
     * @var Acl
40
     */
46
     */
41
    private $acl;
47
    private $acl;
Línea 42... Línea -...
42
    
-
 
43
    /**
48
    
44
     * 
-
 
45
     * @var Company
-
 
46
     */
-
 
Línea 47... Línea 49...
47
    private $company;
49
   
48
    
50
    
49
    /**
51
    /**
50
     * 
52
     * 
Línea 61... Línea 63...
61
    
63
    
62
    /**
64
    /**
63
     * 
65
     * 
64
     * @var CurrentUserPlugin
66
     * @var CurrentUserPlugin
65
     */
67
     */
-
 
68
    private $currentUserPlugin;
-
 
69
    
-
 
70
    
-
 
71
    /**
-
 
72
     *
-
 
73
     * @var CurrentNetworkPlugin
-
 
74
     */
Línea 66... Línea 75...
66
    private $currentUser;
75
    private $currentNetworkPlugin;
67
    
76
    
68
    
77
    
Línea 172... Línea 181...
172
        } else {
181
        } else {
173
            $timestamp = 0;
182
            $timestamp = 0;
174
        }
183
        }
Línea -... Línea 184...
-
 
184
 
-
 
185
        
-
 
186
        
-
 
187
        
-
 
188
        $this->currentNetworkPlugin = new CurrentNetworkPlugin($adapter);
-
 
189
        if(!$this->currentNetworkPlugin->hasNetwork()) {
-
 
190
            echo '2';
-
 
191
            exit;
-
 
192
            header("HTTP/1.1 401 Unauthorized - Private network - not found");
-
 
193
            exit;
-
 
194
        }
-
 
195
        
-
 
196
        if($this->currentNetworkPlugin->getNetwork()->status == Network::STATUS_INACTIVE) {
-
 
197
            echo '3';
-
 
198
            exit;
-
 
199
            header("HTTP/1.1 401 Unauthorized - Private network - inactive");
-
 
200
            exit;
-
 
201
        }
175
 
202
        
176
        
203
        
177
        $this->authByHeaders = false;
204
        $this->authByHeaders = false;
Línea 195... Línea 222...
195
            
222
            
196
            
-
 
Línea -... Línea 223...
-
 
223
            
-
 
224
            
-
 
225
            
-
 
226
        }
-
 
227
 
-
 
228
        
-
 
229
        
-
 
230
        if(empty($_SERVER['REDIRECT_URL'])) {
-
 
231
            if(empty($_SERVER['REQUEST_URI'])) {
-
 
232
                $routeName = '';
-
 
233
                
-
 
234
            } else {
-
 
235
                $routeName = $_SERVER['REQUEST_URI'];
-
 
236
            }
-
 
237
            
-
 
238
        } else {
-
 
239
            $routeName = $_SERVER['REDIRECT_URL'];
-
 
240
            
Línea 197... Línea 241...
197
            
241
        }
198
            
242
        
-
 
243
 
-
 
244
        $routeName = strtolower(trim($routeName));
-
 
245
        if(strlen($routeName) > 0 && substr($routeName, 0, 1) == '/') {
-
 
246
            $routeName = substr($routeName, 1);
-
 
247
        }
-
 
248
        
-
 
249
        $this->isHtml = $this->isJson ? false : true;
-
 
250
        $this->currentUserPlugin = new CurrentUserPlugin($adapter);
-
 
251
        
-
 
252
        
-
 
253
        if($this->authByHeaders && substr($routeName, 0, 8) == 'services') {
-
 
254
            $checkUserForNetwork = false;
-
 
255
        } else {
-
 
256
            if($this->currentUserPlugin->hasIdentity()) {
-
 
257
            
-
 
258
                $checkUserForNetwork = true;
-
 
259
            } else {
-
 
260
                $checkUserForNetwork = false;
-
 
261
            }
-
 
262
        }
-
 
263
        
-
 
264
        if($checkUserForNetwork) {
-
 
265
            if(!$routeName || in_array($routeName, ['signout', 'signin', 'home'])) {
-
 
266
                $checkUserForNetwork = false;
-
 
267
            }
-
 
268
        }
-
 
269
        
-
 
270
        if($checkUserForNetwork) {
-
 
271
        
-
 
272
   
-
 
273
            
199
        }
274
            if($this->currentUserPlugin->getUser()->network_id != $this->currentNetworkPlugin->getNetworkId()) {
200
        
275
                header("HTTP/1.1 401 Unauthorized - The user is not part of this private network");
201
 
276
                exit;
202
        
277
            }
Línea 215... Línea 290...
215
    }
290
    }
Línea 216... Línea 291...
216
    
291
    
217
    public function initAcl(MvcEvent $event)
292
    public function initAcl(MvcEvent $event)
Línea -... Línea 293...
-
 
293
    {
-
 
294
        
-
 
295
        $serviceManager = $event->getApplication()->getServiceManager();
-
 
296
        $adapter = $serviceManager->get('leaders-linked-db');
218
    {
297
        
Línea 219... Línea 298...
219
        
298
        
220
        require_once   (dirname(__DIR__) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'acl.config.php');
299
        require_once   (dirname(__DIR__) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'acl.config.php');
Línea 236... Línea 315...
236
            {
315
            {
237
                $this->acl->allow($usertype, $resourceName);
316
                $this->acl->allow($usertype, $resourceName);
238
            }
317
            }
239
        }
318
        }
Línea -... Línea 319...
-
 
319
        
-
 
320
     
-
 
321
        
-
 
322
 
-
 
323
        if($this->currentUserPlugin->hasIdentity() && $this->currentUserPlugin->getUser()->is_super_user == User::IS_SUPER_USER_YES) {
-
 
324
        
-
 
325
            $resources =  getAclSuperAdmin();
-
 
326
            foreach($resources as $resourceName)
-
 
327
            {
-
 
328
                $this->acl->allow(UserType::ADMIN, $resourceName);
-
 
329
            }
-
 
330
        }
-
 
331
        
-
 
332
        
-
 
333
        if($this->currentNetworkPlugin->getNetwork()->default == Network::DEFAULT_YES) {
-
 
334
            
-
 
335
            $usertypes = getAclUsertypeDefaultNetwork();
-
 
336
            foreach($usertypes as $usertype => $resources)
-
 
337
            {
-
 
338
 
-
 
339
                foreach ($resources as $resourceName)
-
 
340
                {
-
 
341
                    $this->acl->allow($usertype, $resourceName);
-
 
342
                }
-
 
343
            }
-
 
344
            
-
 
345
            
-
 
346
        } else {
-
 
347
            
-
 
348
            $companyMapper = CompanyMapper::getInstance($adapter);
-
 
349
            $company = $companyMapper->fetchDefaultForNetworkByNetworkId($this->currentNetworkPlugin->getNetwork()->id);
-
 
350
            if($company) {
-
 
351
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
352
                $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($this->company->id,  $this->currentUserPlugin->getUserId());
-
 
353
                
-
 
354
                if($companyUser) {
-
 
355
                    $usertype = $this->currentUserPlugin->getUserTypeId();
-
 
356
                    
-
 
357
                    if($companyUser->creator == CompanyUser::CREATOR_YES) {
-
 
358
                        
-
 
359
                        $resources =  getAclUsertypeOtherNetworkCreator();
-
 
360
                        foreach($resources as $resourceName)
-
 
361
                        {
-
 
362
                            $this->acl->allow($usertype, $resourceName);
-
 
363
                        }
-
 
364
                        
-
 
365
                    }
-
 
366
                    if($companyUser->creator == CompanyUser::CREATOR_NO) {
-
 
367
                        $resources =  getAclUsertypeOtherNetworkNonCreator();
-
 
368
                        foreach($resources as $resourceName)
-
 
369
                        {
-
 
370
                            $this->acl->allow($usertype, $resourceName);
-
 
371
                        }
-
 
372
                    }
-
 
373
                }
-
 
374
            }
-
 
375
        }
-
 
376
        
240
        
377
        
Línea 241... Línea 378...
241
        $event->getViewModel()->setVariable('acl', $this->acl);
378
        $event->getViewModel()->setVariable('acl', $this->acl);
Línea 242... Línea 379...
242
 
379
 
Línea 369... Línea 506...
369
            }
506
            }
370
        }
507
        }
Línea 371... Línea 508...
371
        
508
        
372
        
509
        
373
        
510
        
Línea 374... Línea 511...
374
        if($this->currentUser->hasIdentity())  {
511
        if($this->currentUserPlugin->hasIdentity())  {
Línea 375... Línea 512...
375
            $user = $this->currentUser->getUser(); 
512
            $user = $this->currentUserPlugin->getUser(); 
376
            $userTypeId = $user->usertype_id;
513
            $userTypeId = $user->usertype_id;
Línea 377... Línea 514...
377
            
514
            
378
            
515
            
Línea 379... Línea 516...
379
        }  else {
516
        }  else {
Línea 380... Línea 517...
380
            
517
            
Línea 424... Línea 561...
424
            
561
            
425
            //print_r($this->routesAuthorized);
562
            //print_r($this->routesAuthorized);
Línea 426... Línea 563...
426
           // echo 'sin permiso'; exit;
563
           // echo 'sin permiso'; exit;
Línea 427... Línea 564...
427
            
564
            
428
           
565
           
429
            $this->currentUser->clearIdentity(); 
566
            $this->currentUserPlugin->clearIdentity();