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

All::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
ccs 2
cts 2
cp 1
crap 1
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