Completed
Push — master ( 6c1318...fd4dfb )
by Mahmoud
03:00
created

AttachPermissionsToRoleTask::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace App\Containers\Authorization\Tasks;
4
5
use App\Containers\Authorization\Actions\GetRoleAction;
6
use App\Containers\Authorization\Data\Repositories\RoleRepository;
7
use App\Containers\User\Models\User;
8
use App\Containers\User\Tasks\FindUserByIdTask;
9
use App\Port\Task\Abstracts\Task;
10
11
/**
12
 * Class AttachPermissionsToRoleTask.
13
 *
14
 * @author Mahmoud Zalt <[email protected]>
15
 */
16
class AttachPermissionsToRoleTask extends Task
17
{
18
19
    /**
20
     * @var  \App\Containers\Authorization\Actions\GetRoleAction
21
     */
22
    private $getRoleAction;
23
24
25
    /**
26
     * AttachPermissionsToRoleTask constructor.
27
     *
28
     * @param \App\Containers\Authorization\Actions\GetRoleAction $getRoleAction
29
     */
30
    public function __construct(GetRoleAction $getRoleAction)
31
    {
32
        $this->getRoleAction = $getRoleAction;
33
    }
34
35
    /**
36
     * @param $roleName
37
     * @param $permissionNames
38
     *
39
     * @return  mixed
40
     */
41
    public function run($roleName, $permissionNames)
42
    {
43
        $role = $this->getRoleAction->run($roleName);
44
45
        if(is_array($permissionNames)){
46
47
            foreach ($permissionNames as $permissionName){
48
                $role->givePermissionTo($permissionName);
49
            }
50
51
        }else{
52
            $role->givePermissionTo($permissionNames);
53
        }
54
55
        return $role;
56
    }
57
}
58