@extends('docs.layout') @section('title', 'Autentikasi & Hak Akses') @section('breadcrumb')
Dokumentasi mekanisme autentikasi berbasis username, pengamanan rate limiting lockout, pencatatan waktu akses terakhir, serta pembagian peran (RBAC) 4 tingkatan.
@endsection @section('content')Berbeda dengan konfigurasi standar Laravel yang menggunakan email, sistem SSE menggunakan Username unik dan Password terenkripsi (Bcrypt) untuk proses autentikasi.
| Komponen | File Kode Terkait | Penjelasan Teknis |
|---|---|---|
| Form Login | resources/views/auth/login.blade.php |
Menyediakan form input username & password dengan validasi client/server, toggle remember me, dan countdown timer saat terkena blokir lockout. |
| Controller Auth | app/Http/Controllers/AuthController.php |
Memvalidasi kredensial via Auth::attempt(), mengelola Rate Limiter, meregenerasi session ID untuk mencegah session fixation attack, dan mencatat last_login_at. |
| Pencatatan Akses | app/Models/User.php |
Kolom last_login_at diperbarui secara otomatis setiap kali login berhasil ($user->update(['last_login_at' => now()])), dan ditampilkan di tabel Manajemen Pengguna. |
Untuk mencegah serangan Brute Force (percobaan tebak kata sandi secara berulang), AuthController mengimplementasikan RateLimiter Throttling:
Jika pengguna salah memasukkan password sebanyak 5 kali berturut-turut dalam waktu 60 detik (dihitung per kombinasi username + IP Address):
lockout_until.RateLimiter::clear).Pengamanan otorisasi hak akses ditegakkan oleh middleware khusus RoleMiddleware.php yang didaftarkan sebagai route alias role di app/Http/Kernel.php:
| Role | Tanggung Jawab Utama | Hak Akses Modul |
|---|---|---|
| admin | Super Administrator sistem. | Memiliki akses 100% tanpa batas ke seluruh modul, Master Data, pembuatan & edit User, reset password, dan Dokumentasi Teknis. |
| staf_rab | Staf Estimator & Perencanaan Anggaran. | Mengelola Proyek, menyusun RAB Upah & Material (Unified RAP), mengimpor file Excel RAP, mengelola Master Satuan & Kategori, serta melihat ringkasan stok. |
| staf_purchasing | Staf Pengadaan & Logistik Lapangan. | Mencatat transaksi Barang Masuk (Purchasing), mencatat transaksi Barang Keluar (Usage), mengelola Master Vendor & Material, serta memantau kartu stok proyek. |
| manajer | Manajemen & Pengambil Keputusan. | Akses monitoring (View-Only) ke Dashboard eksekutif, memantau realisasi anggaran RAB vs Pembelian, melihat kartu stok & buku besar, serta mencetak laporan format PDF. |
Khusus pengguna dengan role Admin, tersedia modul pengelolaan akun di menu Master Data → Pengguna (UserController.php):
diffForHumans()).