group(function (): void {
Route::get('/login', [AuthController::class, 'create'])->name('login');
Route::post('/login', [AuthController::class, 'store'])
->middleware('throttle:5,1')
->name('login.store');
});
Route::middleware('auth')->group(function (): void {
Route::get('/', [HomeController::class, 'index'])->name('home');
Route::view('/dashboard', 'dashboard')->name('dashboard');
Route::get('/bonjour/{nom}', function (string $nom): string {
return 'Bonjour '.$nom.' ! ';
});
Route::get('/contact', function (): string {
return '
Contactez-nous';
});
Route::get('/produit/{nom}', function (string $nom): string {
return 'Vous consultez le produit : '.$nom;
});
// TP4 : chaque resource fournit le CRUD ; TP7 : le groupe auth protège le Mini-CRM.
Route::resource('clients', ClientController::class);
Route::resource('products', ProductController::class);
Route::get('/contacts', [ContactController::class, 'index']);
// TP8 bonus : seul l'administrateur peut atteindre cette page.
Route::view('/admin', 'admin')->middleware('can:viewAdmin')->name('admin');
Route::post('/logout', [AuthController::class, 'destroy'])->name('logout');
});