Code Duplication    Length = 65-66 lines in 2 locations

app/Containers/Authorization/Actions/AssignUserToRoleAction.php 1 location

@@ 17-81 (lines=65) @@
14
 *
15
 * @author Mahmoud Zalt <[email protected]>
16
 */
17
class AssignUserToRoleAction extends Action
18
{
19
20
    /**
21
     * @var  \App\Containers\Authorization\Tasks\AssignUserToRoleTask
22
     */
23
    private $assignUserToRoleTask;
24
25
    /**
26
     * @var  \App\Containers\Authorization\Data\Repositories\RoleRepository
27
     */
28
    private $roleRepository;
29
30
    /**
31
     * @var  \App\Containers\User\Tasks\FindUserByIdTask
32
     */
33
    private $findUserByIdTask;
34
35
    /**
36
     * @var  \App\Containers\Authorization\Tasks\GetRoleTask
37
     */
38
    private $getRoleTask;
39
40
    /**
41
     * AssignUserToRoleTask constructor.
42
     *
43
     * @param \App\Containers\Authorization\Data\Repositories\RoleRepository $roleRepository
44
     * @param \App\Containers\User\Tasks\FindUserByIdTask                    $findUserByIdTask
45
     */
46
    public function __construct(
47
        AssignUserToRoleTask $assignUserToRoleTask,
48
        RoleRepository $roleRepository,
49
        FindUserByIdTask $findUserByIdTask,
50
        GetRoleTask $getRoleTask
51
    ) {
52
        $this->assignUserToRoleTask = $assignUserToRoleTask;
53
        $this->roleRepository = $roleRepository;
54
        $this->findUserByIdTask = $findUserByIdTask;
55
        $this->getRoleTask = $getRoleTask;
56
    }
57
58
59
    /**
60
     * @param $user
61
     * @param $rolesIds
62
     *
63
     * @return  \App\Containers\User\Models\User
64
     */
65
    public function run($user, $rolesIds)
66
    {
67
        if (!$user instanceof User) {
68
            $user = $this->findUserByIdTask->run($user);
69
        }
70
71
        if (!is_array($rolesIds)) {
72
            $rolesIds = [$rolesIds];
73
        }
74
75
        foreach ($rolesIds as $roleId) {
76
            $roles[] = $this->getRoleTask->run($roleId);
77
        }
78
79
        return $this->assignUserToRoleTask->run($user, $roles);
80
    }
81
}
82

app/Containers/Authorization/Actions/SyncUserRolesAction.php 1 location

@@ 17-82 (lines=66) @@
14
 *
15
 * @author Mahmoud Zalt <[email protected]>
16
 */
17
class SyncUserRolesAction extends Action
18
{
19
20
    /**
21
     * @var  \App\Containers\Authorization\Tasks\SyncUserRolesTask
22
     */
23
    private $syncUserRolesTask;
24
25
    /**
26
     * @var  \App\Containers\Authorization\Data\Repositories\RoleRepository
27
     */
28
    private $roleRepository;
29
30
    /**
31
     * @var  \App\Containers\User\Tasks\FindUserByIdTask
32
     */
33
    private $findUserByIdTask;
34
35
    /**
36
     * @var  \App\Containers\Authorization\Tasks\GetRoleTask
37
     */
38
    private $getRoleTask;
39
40
    /**
41
     * SyncUserRolesTask constructor.
42
     *
43
     * @param \App\Containers\Authorization\Data\Repositories\RoleRepository $roleRepository
44
     * @param \App\Containers\User\Tasks\FindUserByIdTask                    $findUserByIdTask
45
     */
46
    public function __construct(
47
        SyncUserRolesTask $syncUserRolesTask,
48
        RoleRepository $roleRepository,
49
        FindUserByIdTask $findUserByIdTask,
50
        GetRoleTask $getRoleTask
51
    ) {
52
        $this->syncUserRolesTask = $syncUserRolesTask;
53
        $this->roleRepository = $roleRepository;
54
        $this->findUserByIdTask = $findUserByIdTask;
55
        $this->getRoleTask = $getRoleTask;
56
    }
57
58
59
    /**
60
     * @param $user
61
     * @param $rolesIds
62
     *
63
     * @return  \App\Containers\User\Models\User
64
     */
65
    public function run($user, $rolesIds)
66
    {
67
        
68
        if (!$user instanceof User) {
69
            $user = $this->findUserByIdTask->run($user);
70
        }
71
72
        if (!is_array($rolesIds)) {
73
            $rolesIds = [$rolesIds];
74
        }
75
76
        foreach ($rolesIds as $roleId) {
77
            $roles[] = $this->getRoleTask->run($roleId);
78
        }
79
80
        return $this->syncUserRolesTask->run($user, $roles);
81
    }
82
}
83