prepare("UPDATE users SET aktif = 1 - aktif WHERE id=:id")->execute([':id'=>$id]); logAktivitas($pdo, (int)$_SESSION['user_id'], 'UPDATE', 'users', (string)$id); $msg = "Status user #$id diperbarui."; } catch(Exception $e) { $err = $e->getMessage(); } } else { $err = 'Tidak dapat mengubah status akun sendiri.'; } } // RESET PASSWORD if (isset($_POST['reset_pw'])) { $id = (int)($_POST['user_id'] ?? 0); $pw = $_POST['new_password'] ?? ''; if (strlen($pw) < 6) $err = 'Password minimal 6 karakter.'; else { $hash = password_hash($pw, PASSWORD_BCRYPT); $pdo->prepare("UPDATE users SET password_hash=:h WHERE id=:id")->execute([':h'=>$hash,':id'=>$id]); logAktivitas($pdo, (int)$_SESSION['user_id'], 'UPDATE', 'users', (string)$id, null, ['action'=>'reset_password']); $msg = "Password user #$id berhasil direset."; } } // SAVE USER BARU if (isset($_POST['save'])) { $uname = trim($_POST['username'] ?? ''); $nama = trim($_POST['nama'] ?? ''); $pw = $_POST['password'] ?? ''; $idEdit = (int)($_POST['id_edit'] ?? 0); if (strlen($uname) < 3) $err = 'Username minimal 3 karakter.'; elseif (strlen($nama) < 3) $err = 'Nama minimal 3 karakter.'; elseif (!$idEdit && strlen($pw) < 6) $err = 'Password minimal 6 karakter.'; else { try { if ($idEdit) { $pdo->prepare("UPDATE users SET nama=:nama,role_id=:rid,email=:em,no_telp=:tlp,rumah_ibadah_id=:ri WHERE id=:id") ->execute([':nama'=>$nama,':rid'=>(int)$_POST['role_id'],':em'=>$_POST['email']??'' ?: null, ':tlp'=>$_POST['no_telp']??'' ?: null,':ri'=>$_POST['rumah_ibadah_id']??'' ?: null,':id'=>$idEdit]); $msg = "User $nama diperbarui."; logAktivitas($pdo, (int)$_SESSION['user_id'], 'UPDATE', 'users', (string)$idEdit); } else { $hash = password_hash($pw, PASSWORD_BCRYPT); $pdo->prepare("INSERT INTO users (role_id,nama,username,email,password_hash,no_telp,rumah_ibadah_id) VALUES(:rid,:nama,:uname,:em,:hash,:tlp,:ri)") ->execute([':rid'=>(int)$_POST['role_id'],':nama'=>$nama,':uname'=>$uname, ':em'=>$_POST['email']??'' ?: null,':hash'=>$hash, ':tlp'=>$_POST['no_telp']??'' ?: null,':ri'=>$_POST['rumah_ibadah_id']??'' ?: null]); $msg = "User $uname berhasil dibuat."; logAktivitas($pdo, (int)$_SESSION['user_id'], 'CREATE', 'users', (string)$pdo->lastInsertId()); } } catch(Exception $e) { $err = $e->getMessage(); } } } $edit = null; if (isset($_GET['edit'])) { $s = $pdo->prepare("SELECT * FROM users WHERE id=:id"); $s->execute([':id'=>(int)$_GET['edit']]); $edit = $s->fetch() ?: null; } $rows = $pdo->query(" SELECT u.*, r.nama AS role_nama, ri.nama AS nama_ri FROM users u JOIN roles r ON r.id=u.role_id LEFT JOIN rumah_ibadah ri ON ri.id=u.rumah_ibadah_id ORDER BY u.role_id, u.nama ")->fetchAll(); $roles = $pdo->query("SELECT * FROM roles ORDER BY id")->fetchAll(); $riList = $pdo->query("SELECT id,nama FROM rumah_ibadah ORDER BY nama")->fetchAll(); render_header('Manajemen User'); ?>
👥 Manajemen User


>

Batal
🔑 Reset Password

>
NamaUsernameRoleRumah IbadahStatusAksi

Aktif' : 'Nonaktif' ?> ✏️