Completed
Push — master ( fc2b8b...a482e0 )
by Sebastian
03:04
created

Acl   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 29
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A addRule() 0 4 1
A complies() 0 9 3
1
<?php
2
namespace Kartenmacherei\RestFramework\Router;
3
4
use Kartenmacherei\RestFramework\Request\Request;
5
6
class Acl
7
{
8
    /**
9
     * @var AclRule[]
10
     */
11
    private $rules = [];
12
13
    /**
14
     * @param AclRule $rule
15
     */
16
    public function addRule(AclRule $rule)
17
    {
18
        $this->rules[] = $rule;
19
    }
20
21
    /**
22
     * @param Request $request
23
     * @return bool
24
     */
25
    public function complies(Request $request): bool
26
    {
27
        foreach ($this->rules as $rule) {
28
            if (!$rule->complies($request)) {
29
                return false;
30
            }
31
        }
32
        return true;
33
    }
34
}
35