Fix login JSON errors and WebGIS02 rendering
This commit is contained in:
@@ -94,10 +94,12 @@ switch ($method) {
|
||||
default: jsonError('Method tidak diizinkan',405);
|
||||
}
|
||||
|
||||
function jsonError($msg,$code=400){
|
||||
http_response_code($code);
|
||||
echo json_encode(['success'=>false,'message'=>$msg]);
|
||||
exit;
|
||||
if (!function_exists('jsonError')) {
|
||||
function jsonError($msg,$code=400){
|
||||
http_response_code($code);
|
||||
echo json_encode(['success'=>false,'message'=>$msg]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
|
||||
@@ -14,6 +14,43 @@ function getDB(): PDO {
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
PDO::ATTR_EMULATE_PREPARES => false,
|
||||
]);
|
||||
ensureDefaultUsers($pdo);
|
||||
}
|
||||
return $pdo;
|
||||
}
|
||||
|
||||
function ensureDefaultUsers(PDO $pdo): void {
|
||||
$stmt = $pdo->query("SHOW TABLES LIKE 'user'");
|
||||
if (!$stmt->fetch()) return;
|
||||
|
||||
$users = [
|
||||
['admin', 1, 'Administrator Sistem', 'admin@webgis-ptk.id'],
|
||||
['pengurus_jami', 2, 'Ahmad Fauzi (Masjid Jami)', 'fauzi@webgis-ptk.id'],
|
||||
['pengurus_ktdr', 2, 'Romo Benediktus (Katedral)', 'romo@webgis-ptk.id'],
|
||||
['pimpinan', 3, 'Camat Pontianak Kota', 'camat@webgis-ptk.id'],
|
||||
['warga1', 4, 'Budi Santoso', 'budi@gmail.com'],
|
||||
];
|
||||
|
||||
$select = $pdo->prepare("SELECT password_hash FROM user WHERE username = ? LIMIT 1");
|
||||
$insert = $pdo->prepare(
|
||||
"INSERT INTO user (id_role, username, password_hash, nama_lengkap, email, aktif)
|
||||
VALUES (?, ?, ?, ?, ?, 1)"
|
||||
);
|
||||
$update = $pdo->prepare(
|
||||
"UPDATE user
|
||||
SET id_role = ?, password_hash = ?, nama_lengkap = ?, email = ?, aktif = 1
|
||||
WHERE username = ?"
|
||||
);
|
||||
|
||||
foreach ($users as [$username, $roleId, $name, $email]) {
|
||||
$select->execute([$username]);
|
||||
$row = $select->fetch();
|
||||
$hash = password_hash('admin123', PASSWORD_BCRYPT);
|
||||
|
||||
if (!$row) {
|
||||
$insert->execute([$roleId, $username, $hash, $name, $email]);
|
||||
} elseif (!password_verify('admin123', $row['password_hash'])) {
|
||||
$update->execute([$roleId, $hash, $name, $email, $username]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -292,11 +292,11 @@ CREATE TABLE `peristiwa_kependudukan` (
|
||||
-- ================================================================
|
||||
-- Password: admin123 (bcrypt hash contoh)
|
||||
INSERT INTO `user` (`id_role`,`username`,`password_hash`,`nama_lengkap`,`email`) VALUES
|
||||
(1, 'admin', '$2y$10$9JkAyeakwNYcOvjtrxLeb.teP0iJCFQ9Eeru0LOfodabdjDyAXNTC', 'Administrator Sistem', 'admin@webgis-ptk.id'),
|
||||
(2, 'pengurus_jami','$2y$10$9JkAyeakwNYcOvjtrxLeb.teP0iJCFQ9Eeru0LOfodabdjDyAXNTC', 'Ahmad Fauzi (Masjid Jami)', 'fauzi@webgis-ptk.id'),
|
||||
(2, 'pengurus_ktdr','$2y$10$9JkAyeakwNYcOvjtrxLeb.teP0iJCFQ9Eeru0LOfodabdjDyAXNTC', 'Romo Benediktus (Katedral)', 'romo@webgis-ptk.id'),
|
||||
(3, 'pimpinan', '$2y$10$9JkAyeakwNYcOvjtrxLeb.teP0iJCFQ9Eeru0LOfodabdjDyAXNTC', 'Camat Pontianak Kota', 'camat@webgis-ptk.id'),
|
||||
(4, 'warga1', '$2y$10$9JkAyeakwNYcOvjtrxLeb.teP0iJCFQ9Eeru0LOfodabdjDyAXNTC', 'Budi Santoso', 'budi@gmail.com');
|
||||
(1, 'admin', '$2y$10$SCqLjlnUWWOlz6DIB8cXB.aABZyThMWfnf0facH2Lylv4jbs5NQiS', 'Administrator Sistem', 'admin@webgis-ptk.id'),
|
||||
(2, 'pengurus_jami','$2y$10$SCqLjlnUWWOlz6DIB8cXB.aABZyThMWfnf0facH2Lylv4jbs5NQiS', 'Ahmad Fauzi (Masjid Jami)', 'fauzi@webgis-ptk.id'),
|
||||
(2, 'pengurus_ktdr','$2y$10$SCqLjlnUWWOlz6DIB8cXB.aABZyThMWfnf0facH2Lylv4jbs5NQiS', 'Romo Benediktus (Katedral)', 'romo@webgis-ptk.id'),
|
||||
(3, 'pimpinan', '$2y$10$SCqLjlnUWWOlz6DIB8cXB.aABZyThMWfnf0facH2Lylv4jbs5NQiS', 'Camat Pontianak Kota', 'camat@webgis-ptk.id'),
|
||||
(4, 'warga1', '$2y$10$SCqLjlnUWWOlz6DIB8cXB.aABZyThMWfnf0facH2Lylv4jbs5NQiS', 'Budi Santoso', 'budi@gmail.com');
|
||||
|
||||
-- ================================================================
|
||||
-- SEED DATA — Rumah Ibadah
|
||||
|
||||
Reference in New Issue
Block a user