83 lines
3.3 KiB
SQL
83 lines
3.3 KiB
SQL
-- ============================================================
|
||
-- 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 semua akun: "password") ──
|
||
-- Hash bcrypt digenerate dengan PHP password_hash('password', PASSWORD_DEFAULT)
|
||
--
|
||
-- admin → password
|
||
-- petugas → password
|
||
-- pengurus → password
|
||
-- walikota → password
|
||
|
||
INSERT INTO users (username, nama_lengkap, role, password_hash) VALUES
|
||
(
|
||
'admin',
|
||
'Administrator Sistem',
|
||
'admin',
|
||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
||
),
|
||
(
|
||
'petugas',
|
||
'Petugas Lapangan',
|
||
'petugas',
|
||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
||
),
|
||
(
|
||
'pengurus',
|
||
'Pengurus Rumah Ibadah',
|
||
'pengurus',
|
||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
||
),
|
||
(
|
||
'walikota',
|
||
'Walikota Pontianak',
|
||
'walikota',
|
||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
||
);
|
||
|
||
-- !! Untuk database yang sudah ada, jalankan update_pass.php atau generate_hash.php !!
|
||
|
||
-- ── 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
|
||
*/
|