dashboard -> admin

This commit is contained in:
punkfairie 2025-02-20 20:44:59 -08:00
parent cea65304c3
commit 1e3801bf6e
Signed by: punkfairie
GPG key ID: B3C5488E9A1A7CA6
12 changed files with 44 additions and 32 deletions

View file

@ -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));
} }
/** /**

View file

@ -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));
} }
} }

View file

@ -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();

View file

@ -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');
} }
} }

View file

@ -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));
} }
} }

View file

@ -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');
} }
} }

View file

@ -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>

View file

@ -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>

View file

@ -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';

View file

@ -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',
]); ]);

View file

@ -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 () {

View file

@ -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));
}); });