feat: complete user authentication, admin guard, customer account dashboard and branded HTML emails

This commit is contained in:
2026-11-01 13:55:45 +01:00
parent b6ee6938cb
commit ee89da5e61
37 changed files with 1895 additions and 22 deletions
+32 -2
View File
@@ -1,10 +1,14 @@
<?php
use App\Http\Controllers\AccountController;
use App\Http\Controllers\Admin\CategoryController as AdminCategoryController;
use App\Http\Controllers\Admin\ContentController;
use App\Http\Controllers\Admin\MakerWorldController;
use App\Http\Controllers\Admin\OrderController as AdminOrderController;
use App\Http\Controllers\Admin\ProductController as AdminProductController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\CartController;
use App\Http\Controllers\CheckoutController;
use App\Http\Controllers\ShopController;
@@ -77,8 +81,34 @@ Route::get('/afrekenen', [CheckoutController::class, 'index'])->name('checkout.i
Route::post('/afrekenen', [CheckoutController::class, 'store'])->name('checkout.store');
Route::get('/bestelling-ontvangen/{orderNumber}', [CheckoutController::class, 'success'])->name('checkout.success');
// Admin & CMS Beheer
Route::prefix('admin')->name('admin.')->group(function () {
// Authenticatie & Klantenportaal
Route::middleware('guest')->group(function () {
Route::get('/inloggen', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/inloggen', [LoginController::class, 'login'])->name('login.submit');
Route::redirect('/login', '/inloggen');
Route::get('/registreren', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/registreren', [RegisterController::class, 'register'])->name('register.submit');
Route::redirect('/register', '/registreren');
Route::get('/wachtwoord-vergeten', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('/wachtwoord-vergeten', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('/wachtwoord-resetten/{token}', [ForgotPasswordController::class, 'showResetForm'])->name('password.reset');
Route::post('/wachtwoord-resetten', [ForgotPasswordController::class, 'reset'])->name('password.update');
});
Route::middleware('auth')->group(function () {
Route::post('/uitloggen', [LoginController::class, 'logout'])->name('logout');
Route::get('/uitloggen', [LoginController::class, 'logout']); // Fallback voor GET uitloggen
// Klantendashboard / Mijn Account
Route::get('/mijn-account', [AccountController::class, 'index'])->name('account.index');
Route::put('/mijn-account/profiel', [AccountController::class, 'updateProfile'])->name('account.profile');
Route::put('/mijn-account/wachtwoord', [AccountController::class, 'updatePassword'])->name('account.password');
});
// Admin & CMS Beheer (Beveiligd: alleen ingelogde admins)
Route::prefix('admin')->name('admin.')->middleware(['auth', 'admin'])->group(function () {
Route::redirect('/', '/admin/content');
// Layout, Stijl & Teksten CMS