name('login'); Route::post('/login', [AuthController::class, 'login'])->name('login.attempt'); Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // Lupa kata laluan Route::get('/lupa-katalaluan', [PasswordResetController::class, 'showLinkRequestForm'])->name('password.request'); Route::post('/lupa-katalaluan', [PasswordResetController::class, 'sendResetLink'])->name('password.email'); Route::get('/set-kata-laluan/{token}', [PasswordResetController::class, 'showResetForm'])->name('password.reset'); Route::post('/set-kata-laluan', [PasswordResetController::class, 'reset'])->name('password.update'); Route::middleware(['auth'])->group(function () { // Profil sendiri: tukar kata laluan (semua peranan) Route::get('/profil', [ProfilController::class, 'edit'])->name('profil.edit'); Route::put('/profil/kata-laluan', [ProfilController::class, 'updatePassword'])->name('profil.kata-laluan'); Route::middleware(['role:superadmin,admin'])->group(function () { // Dashboard kehadiran KTM ambil peti undi Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); // Tanda hadir / batal Route::post('/kehadiran/{assignment}/hadir', [KehadiranController::class, 'hadir'])->name('kehadiran.hadir'); Route::delete('/kehadiran/{assignment}', [KehadiranController::class, 'batal'])->name('kehadiran.batal'); // Muat turun senarai kehadiran (Excel) Route::get('/eksport-kehadiran', EksportKehadiranController::class)->name('kehadiran.eksport'); // Flag saluran bermasalah Route::get('/saluran-bermasalah', [SaluranBermasalahController::class, 'index'])->name('saluran.index'); Route::post('/saluran-bermasalah', [SaluranBermasalahController::class, 'store'])->name('saluran.store'); Route::delete('/saluran-bermasalah/{saluran}', [SaluranBermasalahController::class, 'destroy'])->name('saluran.destroy'); }); Route::middleware(['role:superadmin'])->group(function () { // Pengurusan pengguna (superadmin sahaja) Route::get('/pengguna', [PenggunaController::class, 'index'])->name('pengguna.index'); Route::get('/pengguna/cipta', [PenggunaController::class, 'create'])->name('pengguna.create'); Route::post('/pengguna', [PenggunaController::class, 'store'])->name('pengguna.store'); Route::delete('/pengguna/{pengguna}', [PenggunaController::class, 'destroy'])->name('pengguna.destroy'); }); });