Files
WebGIS_Project/05/user.php
T
2026-06-13 08:08:49 +07:00

53 lines
1.9 KiB
PHP

<?php
error_reporting(0);
ini_set("display_errors", 0);
ob_start();
session_start();
include 'koneksi.php';
$aksi = $_REQUEST['aksi'] ?? 'list';
if ($aksi === 'list') {
$res=$conn->query("SELECT u.id,u.nama,u.email,u.aktif,u.created_at,r.nama AS role_nama,r.id AS role_id FROM `user` u JOIN `role` r ON u.role_id=r.id ORDER BY u.nama");
if(!$res) json_out(['error'=>$conn->error],500);
$rows=[]; while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows);
}
if ($aksi === 'simpan') {
$nm=$conn->real_escape_string($_POST['nama']??'');
$em=$conn->real_escape_string($_POST['email']??'');
$pw=password_hash($_POST['password']??'password',PASSWORD_DEFAULT);
$rid=(int)($_POST['role_id']??1);
$cek=$conn->query("SELECT id FROM `user` WHERE email='$em'")->num_rows;
if($cek>0) json_out(['error'=>'Email sudah digunakan'],400);
$conn->query("INSERT INTO `user` (nama,email,password,role_id) VALUES ('$nm','$em','$pw',$rid)");
if($conn->error) json_out(['error'=>$conn->error],500);
json_out(['success'=>true,'id'=>$conn->insert_id]);
}
if ($aksi === 'edit') {
$id=(int)($_POST['id']??0);
$nm=$conn->real_escape_string($_POST['nama']??'');
$em=$conn->real_escape_string($_POST['email']??'');
$rid=(int)($_POST['role_id']??1);
$akt=(int)($_POST['aktif']??1);
$conn->query("UPDATE `user` SET nama='$nm',email='$em',role_id=$rid,aktif=$akt WHERE id=$id");
if(!empty($_POST['password'])){
$pw=password_hash($_POST['password'],PASSWORD_DEFAULT);
$conn->query("UPDATE `user` SET password='$pw' WHERE id=$id");
}
json_out(['success'=>true]);
}
if ($aksi === 'hapus') {
$id=(int)($_POST['id']??0);
$conn->query("DELETE FROM `user` WHERE id=$id");
json_out(['success'=>true]);
}
if ($aksi === 'roles') {
$res=$conn->query("SELECT * FROM `role`"); $rows=[];
while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows);
}