-- ============================================================ -- MIGRASI: Tabel Users & Role-Based Access Control -- WebGIS Poverty Mapping – Sistem Autentikasi -- Jalankan di phpMyAdmin atau MySQL CLI setelah database.sql -- ============================================================ USE webgis_p3; -- ── Tabel pengguna ───────────────────────────────────────── CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL UNIQUE, nama_lengkap VARCHAR(200) NOT NULL, role ENUM('admin','petugas','pengurus','walikota') NOT NULL, password_hash VARCHAR(255) NOT NULL, aktif TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_role (role), INDEX idx_aktif (aktif) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- ── Akun demo (password di-hash dengan bcrypt PHP PASSWORD_DEFAULT) ── -- Gunakan script generate_hash.php untuk membuat hash baru jika perlu. -- -- admin → admin123 -- petugas → petugas123 -- pengurus → pengurus123 -- -- Hash di bawah digenerate dengan PHP: -- password_hash('admin123', PASSWORD_DEFAULT) → $2y$12$... -- password_hash('petugas123', PASSWORD_DEFAULT) → $2y$12$... -- password_hash('pengurus123', PASSWORD_DEFAULT) → $2y$12$... -- -- !! Jangan gunakan plain text password di produksi !! INSERT INTO users (username, nama_lengkap, role, password_hash) VALUES ( 'admin', 'Administrator Sistem', 'admin', '$2y$12$YourHashHereReplaceMe.admin123HashGeneratedByPHP' ), ( 'petugas', 'Petugas Lapangan', 'petugas', '$2y$12$YourHashHereReplaceMe.petugas123HashGeneratedByPHP' ), ( 'pengurus', 'Pengurus Rumah Ibadah', 'pengurus', '$2y$12$YourHashHereReplaceMe.pengurus123HashGeneratedByPHP' ), ( 'walikota', 'Walikota Pontianak', 'walikota', '$2y$10$s0387VqXY8wBXYkVytEKxumpF0DmlBlE1z3usinr0nr1RYN/4BZw.' ); -- !! PENTING: Setelah import tabel di atas, jalankan generate_hash.php -- untuk mengisi password_hash yang benar secara otomatis. !! -- ── Catatan hak akses per role ────────────────────────────── /* ROLE: admin ───────────────────────────────────────────────────────────── • CRUD semua data: SPBU, kemiskinan, rumah ibadah • Dapat melihat semua layer & analisis spasial • Fitur FAB Tambah: SPBU, Kemiskinan, Rumah Ibadah ROLE: petugas ───────────────────────────────────────────────────────────── • Input & edit data kemiskinan (CREATE + UPDATE + DELETE) • View semua data (read-only untuk SPBU & Rumah Ibadah) • Fitur FAB Tambah: hanya Kemiskinan • Tidak dapat hapus data SPBU atau Rumah Ibadah • Tidak dapat tambah/edit SPBU atau Rumah Ibadah ROLE: pengurus ───────────────────────────────────────────────────────────── • Input & edit data rumah ibadah miliknya (CREATE + UPDATE + DELETE) • View data kemiskinan (read-only) • Fitur FAB Tambah: hanya Rumah Ibadah • Tidak dapat hapus data SPBU atau kemiskinan • Tidak dapat tambah/edit SPBU atau kemiskinan */