First commit

This commit is contained in:
2026-06-09 19:02:22 +07:00
commit c2c0774b3b
36 changed files with 10493 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
-- ============================================================
-- 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
*/