RolesManager   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 61
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
getRoles() 0 1 ?
A assignRole() 0 7 1
A assignRoles() 0 7 1
A removeRole() 0 7 1
A removeRoles() 0 7 1
1
<?php
2
3
namespace Omatech\Mage\Core\Domains\Shared\Traits;
4
5
use Omatech\Mage\Core\Domains\Roles\Contracts\RoleInterface;
6
use Omatech\Mage\Core\Domains\Roles\Exceptions\RoleIsNotSavedException;
7
use Omatech\Mage\Core\Domains\Roles\RoleModel;
8
9
trait RolesManager
10
{
11
    private $roles = [];
12
13
    /**
14
     * @return mixed
15
     */
16
    abstract public function getRoles();
17
18
    /**
19
     * @param RoleInterface $role
20
     * @return self
21
     * @throws RoleIsNotSavedException
22
     */
23 1
    public function assignRole(RoleInterface $role)
24
    {
25 1
        $this->roles = (new RoleModel())
26 1
            ->assignRole($this->getRoles(), $role);
27
28 1
        return $this;
29
    }
30
31
    /**
32
     * @param array $roles
33
     * @return self
34
     * @throws RoleIsNotSavedException
35
     */
36 7
    public function assignRoles(array $roles)
37
    {
38 7
        $this->roles = (new RoleModel())
39 7
            ->assignRoles($this->getRoles(), $roles);
40
41 6
        return $this;
42
    }
43
44
    /**
45
     * @param RoleInterface $role
46
     * @return self
47
     * @throws RoleIsNotSavedException
48
     */
49 1
    public function removeRole(RoleInterface $role)
50
    {
51 1
        $this->roles = (new RoleModel())
52 1
            ->removeRole($this->getRoles(), $role);
53
54 1
        return $this;
55
    }
56
57
    /**
58
     * @param array $roles
59
     * @return self
60
     * @throws RoleIsNotSavedException
61
     */
62 2
    public function removeRoles(array $roles)
63
    {
64 2
        $this->roles = (new RoleModel())
65 2
            ->removeRoles($this->getRoles(), $roles);
66
67 1
        return $this;
68
    }
69
}
70