Passed
Push — master ( c12a7e...1e568f )
by Brian
02:51
created

ProfileController::destroy()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

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