65 lines
3.3 KiB
PHP
Executable File
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');
|