Completed
Push — master ( 4628d4...002236 )
by Jeremy
08:14
created

UserController::destroy()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 5
rs 10
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Http\Requests\UserRequest;
6
use App\Models\User;
7
use Illuminate\Support\Facades\Hash;
8
9
class UserController extends Controller
10
{
11
    /**
12
     * Display a listing of the users.
13
     *
14
     * @param \App\User $model
0 ignored issues
show
Bug introduced by
The type App\User was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
15
     *
16
     * @return \Illuminate\View\View
17
     */
18
    public function index(User $model)
19
    {
20
        $data = [
21
            'users' => $model->paginate(15),
22
        ];
23
24
        return view('users.index', $data);
25
    }
26
27
    /**
28
     * Show the form for creating a new user.
29
     *
30
     * @return \Illuminate\View\View
31
     */
32
    public function create()
33
    {
34
        $roles = config('roles.models.role')::all();
35
        $data = [
36
            'roles'  => $roles,
37
        ];
38
39
        return view('users.create', $data);
40
    }
41
42
    /**
43
     * Store a newly created user in storage.
44
     *
45
     * @param \App\Http\Requests\UserRequest $request
46
     * @param \App\User                      $model
47
     *
48
     * @return \Illuminate\Http\RedirectResponse
49
     */
50
    public function store(UserRequest $request, User $model)
51
    {
52
        $newUser = $model->create($request->merge(['password' => Hash::make($request->get('password'))])->all());
53
        $role = config('roles.models.role')::find($request->role);
54
        $newUser->attachRole($role);
55
56
        return redirect()->route('user.index')->withStatus(__('User successfully created.'));
57
    }
58
59
    /**
60
     * Show the form for editing the specified user.
61
     *
62
     * @param \App\User $user
63
     *
64
     * @return \Illuminate\View\View
65
     */
66
    public function edit(User $user)
67
    {
68
        $roles = [];
0 ignored issues
show
Unused Code introduced by
The assignment to $roles is dead and can be removed.
Loading history...
69
        $currentRole = '';
70
        $roles = config('roles.models.role')::all();
71
72
        foreach ($user->roles as $user_role) {
0 ignored issues
show
Bug Best Practice introduced by
The property $roles is declared protected in App\Models\User. Since you implement __get, consider adding a @property or @property-read.
Loading history...
73
            $currentRole = $user_role;
74
        }
75
76
        $data = [
77
            'currentRole'   => $currentRole,
78
            'roles'         => $roles,
79
            'user'          => $user,
80
        ];
81
82
        return view('users.edit', $data);
83
    }
84
85
    /**
86
     * Update the specified user in storage.
87
     *
88
     * @param \App\Http\Requests\UserRequest $request
89
     * @param \App\User                      $user
90
     *
91
     * @return \Illuminate\Http\RedirectResponse
92
     */
93
    public function update(UserRequest $request, User $user)
94
    {
95
        $user->update(
96
            $request->merge(['password' => Hash::make($request->get('password'))])
97
                ->except([$request->get('password') ? '' : 'password']
98
        ));
99
100
        $role = config('roles.models.role')::find($request->role);
101
        $user->detachAllRoles();
102
        $user->attachRole($role);
103
104
        return redirect()->route('user.index')->withStatus(__('User successfully updated.'));
105
    }
106
107
    /**
108
     * Remove the specified user from storage.
109
     *
110
     * @param \App\User $user
111
     *
112
     * @return \Illuminate\Http\RedirectResponse
113
     */
114
    public function destroy(User $user)
115
    {
116
        $user->delete();
117
118
        return redirect()->route('user.index')->withStatus(__('User successfully deleted.'));
119
    }
120
}
121