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

ProfileController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 47
ccs 0
cts 20
cp 0
rs 10
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A destroy() 0 16 1
A edit() 0 4 1
A update() 0 11 2
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