Completed
Push — dynamic_siteaccesses ( 16c7ff )
by
unknown
20:23
created

StaticSiteAccessProvider   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 36
rs 10
c 0
b 0
f 0
wmc 4
lcom 2
cbo 3

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getSiteAccesses() 0 4 1
A isDefined() 0 4 1
A getSiteAccess() 0 9 1
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
declare(strict_types=1);
8
9
namespace eZ\Publish\Core\MVC\Symfony\SiteAccess\Provider;
10
11
use eZ\Publish\Core\MVC\Symfony\SiteAccess;
12
use eZ\Publish\Core\MVC\Symfony\SiteAccess\SiteAccessProviderInterface;
13
use eZ\Publish\Core\MVC\Symfony\SiteAccessGroup;
14
use eZ\Publish\Core\MVC\Symfony\SiteAccessList;
15
use Iterator;
16
17
final class StaticSiteAccessProvider implements SiteAccessProviderInterface
18
{
19
    /** @var string[] */
20
    private $siteAccessList;
21
22
    /**
23
     * @var string[]
24
     */
25
    private $groupsBySiteAccess;
26
27
    public function __construct(array $siteAccessList, array $groupsBySiteAccess)
28
    {
29
        $this->siteAccessList = $siteAccessList;
30
        $this->groupsBySiteAccess = $groupsBySiteAccess;
31
    }
32
33
    public function getSiteAccesses(): Iterator
34
    {
35
        return new \IteratorIterator(new SiteAccessList([]));
36
    }
37
38
    public function isDefined(string $name): bool
39
    {
40
        return in_array($name, $this->siteAccessList);
41
    }
42
43
    public function getSiteAccess(string $name): SiteAccess
44
    {
45
        $siteAccess = new SiteAccess($name, null, null, self::class);
46
        $siteAccess->groups = array_map(function($group) {
47
            return new SiteAccessGroup($group);
48
        }, $this->groupsBySiteAccess[$name]);
49
50
        return $siteAccess;
51
    }
52
}
53