1 files added
3 files modified
| | |
| | | /* Lib for interacting with customized ILIAS php */ |
| | | |
| | | module.exports = { |
| | | importIliasUser, |
| | | |
| | | deleteUser, |
| | | deleteAllUsers, |
| | | deleteTeilnahme, |
| | |
| | | const {url, iliastoken} = settings.ilias |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | /////// USER IMPORT //////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * Format in POPCORN für SOAP; ausprobieren ob das hier auch funktioniert, v.a. die user-defined-fields |
| | | * { |
| | | * Action: "Insert", |
| | | * login: formatSapNr(dbMa.sapNr), |
| | | * password: passGen(12), |
| | | * firstname: dbMa.vorname, |
| | | * lastname: dbMa.nachname, |
| | | * email: email, |
| | | * gender: mapSex[dbMa.geschlecht], |
| | | * // GS-1894: Azubis wird der Ausbildungsberuf auch als Abteilung angezeigt |
| | | * department: getDepartment(dbMa), |
| | | * institution: dbMa.markt.markt, |
| | | * roleIdGlobal: 4, |
| | | * userDefinedField: [ |
| | | * { |
| | | * name: "Markt", |
| | | * value: dbMa.markt.markt, |
| | | * }, |
| | | * { |
| | | * name: "Marktnummer", |
| | | * value: dbMa.markt.nr, |
| | | * }, |
| | | * { |
| | | * name: "Personalnummer", |
| | | * value: formatSapNr(dbMa.sapNr), |
| | | * }, |
| | | * ], |
| | | * } |
| | | * @param user |
| | | * @returns {Promise<any>} |
| | | */ |
| | | async function importIliasUser (user) { |
| | | const sp = new URLSearchParams({ |
| | | command: "importUser", |
| | | token: iliastoken, |
| | | }) |
| | | let url2 = `${url}?${sp.toString()}` |
| | | console.log(url2) |
| | | const res = await fetch(url2, { |
| | | method: "POST", |
| | | body: JSON.stringify(user) |
| | | }) |
| | | |
| | | const data = await res.json() |
| | | return data |
| | | |
| | | const text = await res.text() |
| | | try { |
| | | const json = JSON.parse(text) |
| | | return json |
| | | } catch (ex) { |
| | | console.error(ex.message) |
| | | console.log(text) |
| | | throw ex |
| | | } |
| | | try { |
| | | return data |
| | | } catch (ex) { |
| | | const text = await res.text() |
| | | console.error(text) |
| | | return false |
| | | } |
| | | } |
| | | |
| | | /////// USER DELETE //////////////////////////////////////////////////////////////// |
| | | |
| | | async function deleteUser (obj_id, dry = false) { |
| | | const sp = new URLSearchParams({ |
| | |
| | | throw ex |
| | | } |
| | | } |
| | | |
| | |
| | | $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"; |
| | | break; |
| | | } |
| | | case "deleteUser": |
| | | if ($method == "DELETE") { |
| | | $res["msg"] = deleteUser($obj_id, $dry); |
| | |
| | | |
| | | ############################### |
| | | |
| | | function importUser($data) { |
| | | $user = new ilObjUser(); |
| | | $user->assignData($data); |
| | | $usr_id = $user->create(); |
| | | $user->saveAsNew(); |
| | | return $usr_id; |
| | | } |
| | | |
| | | function deleteUser($obj_id, $dry) |
| | | { |
| | | $usr = ilObjectFactory::getInstanceByObjId($obj_id); |
| | |
| | | }, |
| | | "ilias": { |
| | | "urlDoc": "Url of custom ILIAS PHP file", |
| | | "url": "http://192.168.178.84:8060/alex.php", |
| | | "url": "http://192.168.178.84:8060/globus-ilias-rest/api.php", |
| | | "iliastoken": "jkhHKhui899HUKHBzGHtgoiedko2393490" |
| | | } |
| | | } |
| New file |
| | |
| | | const expect = require("chai").expect |
| | | |
| | | const settings = require("../settings") |
| | | const libIlias = require("../lib/libIlias") |
| | | |
| | | ///////////////////////////////////////////////////////////////////////// |
| | | |
| | | describe("the function importIliasUser", function () { |
| | | |
| | | const user = { |
| | | // Action: "Insert", |
| | | login: "affoReloaded", |
| | | passwd: "test1234", |
| | | passwd_type: "plain", |
| | | firstname: "Adolfo", |
| | | lastname: "de la Cruz", |
| | | email: "alex@gorillaeis.com", |
| | | gender: "m", |
| | | department: "Bananenpflücker", |
| | | institution: "Globus Budapest", |
| | | roleIdGlobal: 4, |
| | | userDefinedField: [ |
| | | { |
| | | name: "Markt", |
| | | value: "Markt UDF", |
| | | }, |
| | | { |
| | | name: "Marktnummer", |
| | | value: "Marktnummer UDF", |
| | | }, |
| | | { |
| | | name: "Personalnummer", |
| | | value: "Personalnummer UDF", |
| | | }, |
| | | ], |
| | | } |
| | | |
| | | it("should import a new user to ILIAS", async function () { |
| | | const res = await libIlias.importIliasUser(user) |
| | | console.dir(res, {depth:null}) |
| | | // expect(res.method).to.equal("DELETE") |
| | | // expect(res.command).to.equal("deleteUser") |
| | | // expect(res.obj_id).to.equal(obj_id) |
| | | // expect(res.status).to.equal("ok") |
| | | }) |
| | | |
| | | }) |