SyncPermissionsOnRoleAction::run()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 16
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 9
nc 2
nop 2
1
<?php
2
3
namespace App\Containers\Authorization\Actions;
4
5
use App\Containers\Authorization\Tasks\GetPermissionTask;
6
use App\Containers\Authorization\Tasks\GetRoleTask;
7
use App\Containers\Authorization\Tasks\SyncPermissionsOnRoleTask;
8
use App\Ship\Parents\Actions\Action;
9
10
/**
11
 * Class SyncPermissionsOnRoleAction.
12
 *
13
 * @author Mahmoud Zalt <[email protected]>
14
 */
15
class SyncPermissionsOnRoleAction extends Action
16
{
17
18
    /**
19
     * @param $roleId
20
     * @param $permissionsIds
21
     *
22
     * @return  mixed
23
     */
24
    public function run($roleId, $permissionsIds)
25
    {
26
        $role = $this->call(GetRoleTask::class, [$roleId]);
27
28
        $permissions = [];
29
30
        if (is_array($permissionsIds)) {
31
            foreach ($permissionsIds as $permissionId) {
32
                $permissions[] = $this->call(GetPermissionTask::class, [$permissionId]);
33
            }
34
        } else {
35
            $permissions[] = $this->call(GetPermissionTask::class, [$permissionsIds]);
36
        }
37
38
        return $this->call(SyncPermissionsOnRoleTask::class, [$role, $permissions]);
39
    }
40
}
41