2025-08-10 18:09:07 +02:00

65 lines
3.3 KiB
PHP
Executable File

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\NailPolishController;
use App\Http\Controllers\UserNailPolishController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\ManufacturerController;
// Startseite
Route::get('/', function () {
return redirect()->route('login');
});
// Authentifizierung (nur für Gäste)
Route::middleware('guest')->group(function () {
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login']);
});
// Logout (nur für eingeloggte Benutzer)
Route::post('/logout', [LoginController::class, 'logout'])->name('logout')->middleware('auth');
// Geschützte Routen
Route::middleware(['auth'])->group(function () {
// Benutzer-Nagellack-Verwaltung
Route::get('/my-collection', [UserNailPolishController::class, 'index'])->name('user-nail-polishes.index');
Route::get('/available', [UserNailPolishController::class, 'available'])->name('user-nail-polishes.available');
Route::get('/create-nail-polish', [UserNailPolishController::class, 'create'])->name('user-nail-polishes.create');
Route::post('/create-nail-polish', [UserNailPolishController::class, 'store'])->name('user-nail-polishes.store');
Route::post('/add-to-collection/{nailPolish}', [UserNailPolishController::class, 'add'])->name('user-nail-polishes.add');
Route::post('/remove-from-collection/{nailPolish}', [UserNailPolishController::class, 'remove'])->name('user-nail-polishes.remove');
// Admin-Routen
Route::middleware(['admin'])->prefix('admin')->name('admin.')->group(function () {
Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard');
Route::get('/users', [AdminController::class, 'users'])->name('users.index');
Route::get('/users/create', [AdminController::class, 'createUser'])->name('users.create');
Route::post('/users', [AdminController::class, 'storeUser'])->name('users.store');
Route::get('/users/{user}/edit', [AdminController::class, 'editUser'])->name('users.edit');
Route::put('/users/{user}', [AdminController::class, 'updateUser'])->name('users.update');
Route::delete('/users/{user}', [AdminController::class, 'destroyUser'])->name('users.destroy');
Route::get('/statistics', [AdminController::class, 'statistics'])->name('statistics');
Route::get('/users/{user}/collection', [UserNailPolishController::class, 'showUserCollection'])->name('users.collection');
});
// Nagellack-Verwaltung (nur für Admin)
Route::middleware(['admin'])->group(function () {
Route::resource('nail-polishes', NailPolishController::class);
Route::get('/nail-polishes/{nailPolish}/users', [NailPolishController::class, 'showUsers'])->name('nail-polishes.showUsers');
});
// Hersteller-Verwaltung (für alle eingeloggten User)
Route::resource('manufacturers', ManufacturerController::class);
Route::get('/manufacturers-search', [ManufacturerController::class, 'search'])->name('manufacturers.search');
});
// Fallback
Route::fallback(function () {
return redirect()->route('login');
});
// Einfache Logout-Route für Debugging
Route::get('/logout', [App\Http\Controllers\Auth\LoginController::class, 'logout'])->name('logout');