RolesManager::assignRole()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

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