dashboard -> admin
This commit is contained in:
parent
cea65304c3
commit
1e3801bf6e
12 changed files with 44 additions and 32 deletions
app/Http/Controllers/Auth
AuthenticatedSessionController.phpConfirmablePasswordController.phpEmailVerificationNotificationController.phpEmailVerificationPromptController.phpRegisteredUserController.phpVerifyEmailController.php
resources/views
routes
tests/Feature/Auth
|
@ -28,7 +28,7 @@ public function store(LoginRequest $request): RedirectResponse
|
||||||
|
|
||||||
$request->session()->regenerate();
|
$request->session()->regenerate();
|
||||||
|
|
||||||
return redirect()->intended(route('dashboard', absolute: false));
|
return redirect()->intended(route('admin', absolute: false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -24,8 +24,8 @@ public function show(): View
|
||||||
*/
|
*/
|
||||||
public function store(Request $request): RedirectResponse
|
public function store(Request $request): RedirectResponse
|
||||||
{
|
{
|
||||||
if (! Auth::guard('web')->validate([
|
if (!Auth::guard('web')->validate([
|
||||||
'email' => $request->user()->email,
|
'email' => $request->user()->email,
|
||||||
'password' => $request->password,
|
'password' => $request->password,
|
||||||
])) {
|
])) {
|
||||||
throw ValidationException::withMessages([
|
throw ValidationException::withMessages([
|
||||||
|
@ -35,6 +35,6 @@ public function store(Request $request): RedirectResponse
|
||||||
|
|
||||||
$request->session()->put('auth.password_confirmed_at', time());
|
$request->session()->put('auth.password_confirmed_at', time());
|
||||||
|
|
||||||
return redirect()->intended(route('dashboard', absolute: false));
|
return redirect()->intended(route('admin', absolute: false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class EmailVerificationNotificationController extends Controller
|
||||||
public function store(Request $request): RedirectResponse
|
public function store(Request $request): RedirectResponse
|
||||||
{
|
{
|
||||||
if ($request->user()->hasVerifiedEmail()) {
|
if ($request->user()->hasVerifiedEmail()) {
|
||||||
return redirect()->intended(route('dashboard', absolute: false));
|
return redirect()->intended(route('admin', absolute: false));
|
||||||
}
|
}
|
||||||
|
|
||||||
$request->user()->sendEmailVerificationNotification();
|
$request->user()->sendEmailVerificationNotification();
|
||||||
|
|
|
@ -15,7 +15,7 @@ class EmailVerificationPromptController extends Controller
|
||||||
public function __invoke(Request $request): RedirectResponse|View
|
public function __invoke(Request $request): RedirectResponse|View
|
||||||
{
|
{
|
||||||
return $request->user()->hasVerifiedEmail()
|
return $request->user()->hasVerifiedEmail()
|
||||||
? redirect()->intended(route('dashboard', absolute: false))
|
? redirect()->intended(route('admin', absolute: false))
|
||||||
: view('auth.verify-email');
|
: view('auth.verify-email');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,14 +30,21 @@ public function create(): View
|
||||||
public function store(Request $request): RedirectResponse
|
public function store(Request $request): RedirectResponse
|
||||||
{
|
{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'name' => ['required', 'string', 'max:255'],
|
'name' => ['required', 'string', 'max:255'],
|
||||||
'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class],
|
'email' => [
|
||||||
|
'required',
|
||||||
|
'string',
|
||||||
|
'lowercase',
|
||||||
|
'email',
|
||||||
|
'max:255',
|
||||||
|
'unique:'.User::class
|
||||||
|
],
|
||||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$user = User::create([
|
$user = User::create([
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'email' => $request->email,
|
'email' => $request->email,
|
||||||
'password' => Hash::make($request->password),
|
'password' => Hash::make($request->password),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -45,6 +52,6 @@ public function store(Request $request): RedirectResponse
|
||||||
|
|
||||||
Auth::login($user);
|
Auth::login($user);
|
||||||
|
|
||||||
return redirect(route('dashboard', absolute: false));
|
return redirect(route('admin', absolute: false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,16 +12,18 @@ class VerifyEmailController extends Controller
|
||||||
/**
|
/**
|
||||||
* Mark the authenticated user's email address as verified.
|
* Mark the authenticated user's email address as verified.
|
||||||
*/
|
*/
|
||||||
public function __invoke(EmailVerificationRequest $request): RedirectResponse
|
public function __invoke(EmailVerificationRequest $request
|
||||||
{
|
): RedirectResponse {
|
||||||
if ($request->user()->hasVerifiedEmail()) {
|
if ($request->user()->hasVerifiedEmail()) {
|
||||||
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
|
return redirect()->intended(route('admin', absolute: false)
|
||||||
|
.'?verified=1');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->user()->markEmailAsVerified()) {
|
if ($request->user()->markEmailAsVerified()) {
|
||||||
event(new Verified($request->user()));
|
event(new Verified($request->user()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
|
return redirect()->intended(route('admin', absolute: false)
|
||||||
|
.'?verified=1');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<x-app-layout>
|
<x-app-layout>
|
||||||
<x-slot:header>
|
<x-slot:header>
|
||||||
<h2>Dashboard</h2>
|
<h2>Admin</h2>
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<div>You're logged in!</div>
|
<div>You're logged in!</div>
|
|
@ -1,7 +1,7 @@
|
||||||
@if (Route::has('login'))
|
@if (Route::has('login'))
|
||||||
<nav>
|
<nav>
|
||||||
@auth
|
@auth
|
||||||
<a href="{{ route('dashboard') }}">Dashboard</a>
|
<a href="{{ route('admin') }}">Admin</a>
|
||||||
@else
|
@else
|
||||||
<a href="{{ route('login') }}">Log in</a>
|
<a href="{{ route('login') }}">Log in</a>
|
||||||
|
|
||||||
|
|
|
@ -7,14 +7,17 @@
|
||||||
return view('welcome');
|
return view('welcome');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('/dashboard', function () {
|
Route::get('/admin', function () {
|
||||||
return view('dashboard');
|
return view('admin');
|
||||||
})->middleware(['auth', 'verified'])->name('dashboard');
|
})->middleware(['auth', 'verified'])->name('admin');
|
||||||
|
|
||||||
Route::middleware('auth')->group(function () {
|
Route::middleware('auth')->group(function () {
|
||||||
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
Route::get('/profile', [ProfileController::class, 'edit'])
|
||||||
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
->name('profile.edit');
|
||||||
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
Route::patch('/profile', [ProfileController::class, 'update'])
|
||||||
|
->name('profile.update');
|
||||||
|
Route::delete('/profile', [ProfileController::class, 'destroy'])
|
||||||
|
->name('profile.destroy');
|
||||||
});
|
});
|
||||||
|
|
||||||
require __DIR__.'/auth.php';
|
require __DIR__.'/auth.php';
|
||||||
|
|
|
@ -12,19 +12,19 @@
|
||||||
$user = User::factory()->create();
|
$user = User::factory()->create();
|
||||||
|
|
||||||
$response = $this->post('/login', [
|
$response = $this->post('/login', [
|
||||||
'email' => $user->email,
|
'email' => $user->email,
|
||||||
'password' => 'password',
|
'password' => 'password',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->assertAuthenticated();
|
$this->assertAuthenticated();
|
||||||
$response->assertRedirect(route('dashboard', absolute: false));
|
$response->assertRedirect(route('admin', absolute: false));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('users can not authenticate with invalid password', function () {
|
test('users can not authenticate with invalid password', function () {
|
||||||
$user = User::factory()->create();
|
$user = User::factory()->create();
|
||||||
|
|
||||||
$this->post('/login', [
|
$this->post('/login', [
|
||||||
'email' => $user->email,
|
'email' => $user->email,
|
||||||
'password' => 'wrong-password',
|
'password' => 'wrong-password',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
Event::assertDispatched(Verified::class);
|
Event::assertDispatched(Verified::class);
|
||||||
expect($user->fresh()->hasVerifiedEmail())->toBeTrue();
|
expect($user->fresh()->hasVerifiedEmail())->toBeTrue();
|
||||||
$response->assertRedirect(route('dashboard', absolute: false).'?verified=1');
|
$response->assertRedirect(route('admin', absolute: false).'?verified=1');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('email is not verified with invalid hash', function () {
|
test('email is not verified with invalid hash', function () {
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
|
|
||||||
test('new users can register', function () {
|
test('new users can register', function () {
|
||||||
$response = $this->post('/register', [
|
$response = $this->post('/register', [
|
||||||
'name' => 'Test User',
|
'name' => 'Test User',
|
||||||
'email' => 'test@example.com',
|
'email' => 'test@example.com',
|
||||||
'password' => 'password',
|
'password' => 'password',
|
||||||
'password_confirmation' => 'password',
|
'password_confirmation' => 'password',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->assertAuthenticated();
|
$this->assertAuthenticated();
|
||||||
$response->assertRedirect(route('dashboard', absolute: false));
|
$response->assertRedirect(route('admin', absolute: false));
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue