diff --git a/api/_errors.php b/api/_errors.php index e67e8a4..867a2a2 100644 --- a/api/_errors.php +++ b/api/_errors.php @@ -11,5 +11,5 @@ $Err_RDP_InvalidArgs = "rdp.invalidargs"; // Invalid arguments supplied to $Err_DP_IDNotFound = "dp.idnotfound"; // Resource not found by requested ID $Err_DP_AlreadyLoggedIn = "dp.alreadyloggedin"; // User already logged into account $Err_DP_RegClosed = "dp.regclosed"; // Registration is closed - +$Err_DP_NotEnoughRole = "dp.notenoughrole" ?> \ No newline at end of file diff --git a/api/user/delete.php b/api/user/delete.php new file mode 100644 index 0000000..8af9ef7 --- /dev/null +++ b/api/user/delete.php @@ -0,0 +1,34 @@ +prepare("delete from users where id = $id"); + $s->bind_param("s",$id); + return $s->execute() !== false; +} + +if (ThisFileIsRequested(__FILE__)) { + require_once("../_json.php"); + +if (isset($_REQUEST["id"])) { + if (!ctype_digit($_REQUEST["id"])) + ReturnJSONError($Err_RDP_InvalidID, "id must be numeric"); + if(!User_HasRole("admin")){ + ReturnJSONError($Err_DP_NotEnoughRole,"You need to be admin to delete other accounts"); + } + $UserID = intval($_REQUEST["id"]); + } else { + if ($LOGGED_IN) + $UserID = $_SESSION["userid"]; + else + ReturnJSONError($Err_RDP_InvalidID, "id must be specified or valid session must be provided"); + } + $result = User_Delete($UserID); + session_unset(); + session_destroy(); + ReturnJSONData(["success" => $result]); + } +?> \ No newline at end of file