$method, "command" => $command, "obj_id" => $obj_id, "status" => null, "msg" => null ); // check token if($token !== $curtoken) { http_response_code(403); $res["status"] = "error"; $res["msg"] = "access denied"; $json = json_encode($res, JSON_PRETTY_PRINT); echo $json; die(); // this ends here } try { switch ($command) { case "ping": if($method == "GET") { $res["msg"] = "pong"; $res["status"] = "ok"; break; } case "getUser": if($method == "GET") { $usr_id = (int) $_GET["usr_id"]; $res["usr_id"] = $usr_id; $usr = getUser($usr_id); $res["data"] = $usr; $res["status"] = "ok"; break; } case "importUser": if ($method == "POST") { $body = file_get_contents('php://input'); $data = json_decode($body, true); $res["usr_id"] = importUser($data); $res["status"] = "ok"; $res["msg"] = "User Import OK"; break; } case "deleteUser": if ($method == "DELETE") { $res["msg"] = deleteUser($obj_id, $dry); $res["status"] = "ok"; break; } case "deleteTeilnahme": if ($method == "DELETE") { $usr_id = (int) $_GET["usr_id"]; $res["usr_id"] = $usr_id; $res["msg"] = deleteTeilnahme($obj_id, $usr_id, $dry); $res["status"] = "ok"; break; } default: http_response_code(500); $res["status"] = "error"; $res["msg"] = "unknown command or method"; } } catch (Exception $err) { http_response_code(500); $res["status"] = "error"; $res["msg"] = $err->__tostring(); } $json = json_encode($res, JSON_PRETTY_PRINT); echo $json; } catch (Exception $ex) { echo $ex; } ############################### function getUser($usr_id) { $usr = ilObjectFactory::getInstanceByObjId($usr_id); return $usr; } function importUser($data) { $user = new ilObjUser(); $user->assignData($data); $usr_id = $user->create(); $user->setTimeLimitUnlimited(true); $user->setActive(true); $user->saveAsNew(); // udf expects: // udf: { // ACHTUNG: Die Nummer enspricht der id in der Tabelle udf_definition und kann je nach Reihenfolge anders sein! // 1: "Markt UDF", // 2: "Marktnummer UDF", // 3: "Personal UDF", // }, $user->setUserDefinedData($data["udf"]); // affo12345 $user->updateUserDefinedFields(); // Rolle zuweisen global $DIC; $rbacadmin = $DIC->rbac()->admin(); $rbacadmin->assignUser($data["role"], $usr_id); return $usr_id; } function deleteUser($obj_id, $dry) { $usr = ilObjectFactory::getInstanceByObjId($obj_id); $msg = "deleted user {$usr->firstname} {$usr->lastname} ({$obj_id})"; if ($dry == "0") { $usr->delete(); return $msg; } else { $msg = "DRY:: ".$msg; return $msg; } } function deleteTeilnahme($obj_id, $usr_id, $dry) { # beim Löschen durch den Kurs wird zwar die Teilnahme gelöscht, aber nicht die Rollenzugehörigkeit $course = ilObjectFactory::getInstanceByObjId($obj_id); $parti = ilCourseParticipant::_getInstanceByObjId($obj_id, $usr_id); ## Achtung die usr_id hier ist Admin id?? #return "parti.isParticipant() = {$parti->isParticipant()}"; $msg = "deleted user({$usr_id}) teilnahme for course '{$course->getTitle()}' ({$obj_id})"; if ($dry == "0") { #$course->_deleteUser($usr_id); #$course->deleteUser($usr_id); ## undefined $parti->delete($usr_id); return $msg; } else { $msg = "DRY:: ".$msg; return $msg; } } ?>