UserController::update()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
namespace App\Http\Controllers\Backend\Access\User;
4
5
use App\Http\Controllers\Controller;
6
use App\Http\Requests\Backend\Access\User\ManageUserRequest;
7
use App\Http\Requests\Backend\Access\User\StoreUserRequest;
8
use App\Http\Requests\Backend\Access\User\UpdateUserRequest;
9
use App\Models\Access\User\User;
10
use App\Repositories\Backend\Access\Role\RoleRepository;
11
use App\Repositories\Backend\Access\User\UserRepository;
12
13
/**
14
 * Class UserController.
15
 */
16
class UserController extends Controller
17
{
18
    /**
19
     * @var UserRepository
20
     */
21
    protected $users;
22
23
    /**
24
     * @var RoleRepository
25
     */
26
    protected $roles;
27
28
    /**
29
     * @param UserRepository $users
30
     * @param RoleRepository $roles
31
     */
32
    public function __construct(UserRepository $users, RoleRepository $roles)
33
    {
34
        $this->users = $users;
35
        $this->roles = $roles;
36
    }
37
38
    /**
39
     * @param ManageUserRequest $request
40
     *
41
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
42
     */
43
    public function index(ManageUserRequest $request)
44
    {
45
        return view('backend.access.index');
46
    }
47
48
    /**
49
     * @param ManageUserRequest $request
50
     *
51
     * @return mixed
52
     */
53
    public function create(ManageUserRequest $request)
54
    {
55
        return view('backend.access.create')
56
            ->withRoles($this->roles->getAll());
57
    }
58
59
    /**
60
     * @param StoreUserRequest $request
61
     *
62
     * @return mixed
63
     */
64
    public function store(StoreUserRequest $request)
65
    {
66
        $this->users->create(['data'   => $request->only('first_name', 'last_name', 'nickname', 'email', 'password', 'status', 'confirmed', 'confirmation_email'),
67
                               'roles' => $request->only('assignees_roles'),
68
        ]);
69
70
        return redirect()->route('admin.access.user.index')->withFlashSuccess(trans('alerts.backend.users.created'));
71
    }
72
73
    /**
74
     * @param User              $user
75
     * @param ManageUserRequest $request
76
     *
77
     * @return mixed
78
     */
79
    public function show(User $user, ManageUserRequest $request)
80
    {
81
        return view('backend.access.show')
82
            ->withUser($user);
83
    }
84
85
    /**
86
     * @param User              $user
87
     * @param ManageUserRequest $request
88
     *
89
     * @return mixed
90
     */
91
    public function edit(User $user, ManageUserRequest $request)
92
    {
93
        return view('backend.access.edit')
94
            ->withUser($user)
95
            ->withUserRoles($user->roles->pluck('id')->all())
96
            ->withRoles($this->roles->getAll());
97
    }
98
99
    /**
100
     * @param User              $user
101
     * @param UpdateUserRequest $request
102
     *
103
     * @return mixed
104
     */
105
    public function update(User $user, UpdateUserRequest $request)
106
    {
107
        $this->users->update($user, ['data' => $request->only('first_name', 'last_name', 'nickname', 'email', 'status', 'confirmed'), 'roles' => $request->only('assignees_roles')]);
108
109
        return redirect()->route('admin.access.user.index')->withFlashSuccess(trans('alerts.backend.users.updated'));
110
    }
111
112
    /**
113
     * @param User              $user
114
     * @param ManageUserRequest $request
115
     *
116
     * @return mixed
117
     */
118
    public function destroy(User $user, ManageUserRequest $request)
119
    {
120
        $this->users->delete($user);
121
122
        return redirect()->route('admin.access.user.deleted')->withFlashSuccess(trans('alerts.backend.users.deleted'));
123
    }
124
}
125