redirect('/dashboard')); // Test route for middleware test — only reachable with school-admin or teacher role Route::middleware(['auth', 'role:school-admin,teacher'])->group(function () { Route::get('/school/dashboard', fn() => response('ok'))->name('school.dashboard'); }); Route::middleware(['auth', 'license'])->group(function () { Route::get('/dashboard', \App\Livewire\Dashboard\Index::class)->name('dashboard'); Route::get('/subjects', \App\Livewire\Subjects\Index::class)->name('subjects'); Route::get('/tasks', \App\Livewire\Tasks\Index::class)->name('tasks'); Route::get('/photo', \App\Livewire\PhotoHelp\Index::class)->name('photo'); Route::get('/rewards', \App\Livewire\Rewards\Index::class)->name('rewards'); Route::get('/progress', \App\Livewire\Progress\Index::class)->name('progress'); Route::get('/notifications', \App\Livewire\Notifications\Index::class)->name('notifications'); Route::get('/settings', \App\Livewire\Settings\Index::class)->name('settings'); }); Route::post('/logout', function (\App\Livewire\Actions\Logout $logout) { $logout(); return redirect()->route('login'); })->middleware('auth')->name('logout'); Route::get('/lizenz-abgelaufen', fn() => view('lizenz-abgelaufen'))->name('lizenz.abgelaufen'); Route::view('profile', 'profile')->middleware(['auth'])->name('profile'); require __DIR__.'/auth.php'; // Quick-Login: double-defense (isLocal + ALLOW_QUICK_LOGIN env) if (app()->isLocal() && env('ALLOW_QUICK_LOGIN', false)) { Route::get('/dev/quick-login', \App\Livewire\DevQuickLogin::class)->name('dev.quick-login'); } // API v1 routes (used by CrossSubdomainSessionTest) require __DIR__ . '/api_v1.php';