Passed
Push — master ( 30f336...ab8928 )
by Brian
14:05
created

ProfileController::edit()   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
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 4
rs 10
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use App\Http\Requests\ProfileUpdateRequest;
6
use Illuminate\Http\RedirectResponse;
7
use Illuminate\Http\Request;
8
use Illuminate\Support\Facades\Auth;
9
use Illuminate\Support\Facades\Redirect;
10
use Illuminate\View\View;
11
12
class ProfileController extends Controller
13
{
14
    /**
15
     * Display the user's profile form.
16
     */
17
    public function edit(Request $request): View
18
    {
19
        return view('profile.edit', [
20
            'user' => $request->user(),
21
        ]);
22
    }
23
24
    /**
25
     * Update the user's profile information.
26
     */
27
    public function update(ProfileUpdateRequest $request): RedirectResponse
28
    {
29
        $request->user()->fill($request->validated());
30
31
        if ($request->user()->isDirty('email')) {
32
            $request->user()->email_verified_at = null;
33
        }
34
35
        $request->user()->save();
36
37
        return Redirect::route('profile.edit')->with('status', 'profile-updated');
38
    }
39
40
    /**
41
     * Delete the user's account.
42
     */
43
    public function destroy(Request $request): RedirectResponse
44
    {
45
        $request->validateWithBag('userDeletion', [
46
            'password' => ['required', 'current-password'],
47
        ]);
48
49
        $user = $request->user();
50
51
        Auth::logout();
52
53
        $user->delete();
54
55
        $request->session()->invalidate();
56
        $request->session()->regenerateToken();
57
58
        return Redirect::to('/');
59
    }
60
}
61