Failed Conditions
Push — master ( 276992...d29638 )
by Adrien
06:52
created

All   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 36
rs 10
c 0
b 0
f 0
ccs 8
cts 8
cp 1
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A assert() 0 9 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Acl\Assertion;
6
7
use Zend\Permissions\Acl\Acl;
8
use Zend\Permissions\Acl\Assertion\AssertionInterface;
9
use Zend\Permissions\Acl\Resource\ResourceInterface;
10
use Zend\Permissions\Acl\Role\RoleInterface;
11
12
class All implements AssertionInterface
13
{
14
    /**
15
     * @var AssertionInterface[]
16
     */
17
    private $asserts;
18
19
    /**
20
     * Check if all asserts are true
21
     *
22
     * @param AssertionInterface ...$asserts
23
     */
24 15
    public function __construct(AssertionInterface ...$asserts)
25
    {
26 15
        $this->asserts = $asserts;
27 15
    }
28
29
    /**
30
     * Assert that all given assert are correct (AND logic)
31
     *
32
     * @param Acl $acl
33
     * @param RoleInterface $role
34
     * @param ResourceInterface $resource
35
     * @param string $privilege
36
     *
37
     * @return bool
38
     */
39 2
    public function assert(Acl $acl, RoleInterface $role = null, ResourceInterface $resource = null, $privilege = null)
40
    {
41 2
        foreach ($this->asserts as $assert) {
42 2
            if (!$assert->assert($acl, $role, $resource, $privilege)) {
43 2
                return false;
44
            }
45
        }
46
47 2
        return true;
48
    }
49
}
50