Files
Aplikasi-Kehadiran-KTM/routes/web.php
Saufi cd5cfb49a9 Superadmin boleh padam pengguna
- Butang Padam dalam senarai pengguna (dengan pengesahan)
- Tidak boleh padam akaun sendiri — dipapar '(akaun anda)'
- Tidak boleh padam pengguna yang telah mencatat rekod kehadiran
  (disokong FK dicatat_oleh_user_id di peringkat DB)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 03:18:07 +08:00

50 lines
2.5 KiB
PHP

<?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\EksportKehadiranController;
use App\Http\Controllers\KehadiranController;
use App\Http\Controllers\PasswordResetController;
use App\Http\Controllers\PenggunaController;
use App\Http\Controllers\ProfilController;
use Illuminate\Support\Facades\Route;
Route::redirect('/', '/login');
// Log masuk
Route::get('/login', [AuthController::class, 'showLogin'])->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');
});
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');
});
});