DetachPermissionsFromRoleTask   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A run() 0 12 3
1
<?php
2
3
namespace App\Containers\Authorization\Tasks;
4
5
use App\Containers\Authorization\Actions\GetRoleAction;
6
use App\Containers\Authorization\Models\Role;
7
use App\Ship\Parents\Tasks\Task;
8
9
/**
10
 * Class DetachPermissionsFromRoleTask.
11
 *
12
 * @author Mahmoud Zalt <[email protected]>
13
 */
14
class DetachPermissionsFromRoleTask extends Task
15
{
16
17
    /**
18
     * @var  \App\Containers\Authorization\Actions\GetRoleAction
19
     */
20
    private $getRoleAction;
21
22
23
    /**
24
     * AttachPermissionsToRoleTask constructor.
25
     *
26
     * @param \App\Containers\Authorization\Actions\GetRoleAction $getRoleAction
27
     */
28
    public function __construct(GetRoleAction $getRoleAction)
29
    {
30
        $this->getRoleAction = $getRoleAction;
31
    }
32
33
    /**
34
     * @param \App\Containers\Authorization\Models\Role $role
35
     * @param                                           $permissionsIds
36
     *
37
     * @return  \App\Containers\Authorization\Models\Role|\Spatie\Permission\Traits\HasPermissions
38
     */
39
    public function run(Role $role, $permissionsIds)
40
    {
41
        if (is_array($permissionsIds)) {
42
            foreach ($permissionsIds as $permissionId) {
43
                $role = $role->revokePermissionTo($permissionId);
44
            }
45
        } else {
46
            $role = $role->revokePermissionTo($permissionsIds);
47
        }
48
49
        return $role;
50
    }
51
}
52