- 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>
50 lines
2.5 KiB
PHP
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');
|
|
});
|
|
});
|