Issues (2551)

src/Impl/Db/CompositePermissionCheck.php (1 issue)

Severity
1
<?php
2
3
namespace Jabe\Impl\Db;
4
5
class CompositePermissionCheck
6
{
7
    protected $disjunctive;
8
9
    protected $compositeChecks = [];
10
11
    protected $atomicChecks = [];
12
13
    public function __construct(bool $disjunctive = true)
14
    {
15
        $this->disjunctive = $disjunctive;
16
    }
17
18
    public function addAtomicCheck(PermissionCheck $permissionCheck): void
19
    {
20
        $this->atomicChecks[] = $permissionCheck;
21
    }
22
23
    public function setAtomicChecks(array $atomicChecks): void
24
    {
25
        $this->atomicChecks = $atomicChecks;
26
    }
27
28
    public function setCompositeChecks(array $subChecks): void
29
    {
30
        $this->compositeChecks = $subChecks;
31
    }
32
33
    public function addCompositeCheck(CompositePermissionCheck $subCheck): void
34
    {
35
        $this->compositeChecks[] = $subCheck;
36
    }
37
38
    /**
39
     * conjunctive else
40
     */
41
    public function isDisjunctive(): bool
42
    {
43
        return $this->disjunctive;
44
    }
45
46
    public function getCompositeChecks(): array
47
    {
48
        return $this->compositeChecks;
49
    }
50
51
    public function getAtomicChecks(): array
52
    {
53
        return $this->atomicChecks;
54
    }
55
56
    public function clear(): void
57
    {
58
        $this->compositeChecks = [];
59
        $this->atomicChecks = [];
60
    }
61
62
    public function getAllPermissionChecks(): array
63
    {
64
        $allChecks = [];
0 ignored issues
show
The assignment to $allChecks is dead and can be removed.
Loading history...
65
66
        $allChecks = array_merge([], $this->atomicChecks);
67
68
        foreach ($this->compositeChecks as $compositePermissionCheck) {
69
            $allChecks = array_merge($allChecks, $compositePermissionCheck->getAllPermissionChecks());
70
        }
71
72
        return $allChecks;
73
    }
74
}
75