DetachPermissionsFromRoleTask::run()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 12
rs 9.4285
cc 3
eloc 7
nc 2
nop 2
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