====== Was diese Anleitung kann ====== - Diese Anleitung soll zeigen, wie man einen REST-API-Nutzer in Moodle anlegt, so dass man mit externen Werzeugen Moodle über die REST-Schnittstelle ansprechen kann. - Diese Anleitung soll aufzeigen, wie man mit den LDAP-Daten der linuxmuster.net (7+) die Strukur, Benutzer und Daten bearbeitet und welche Plugins dafür nötig sind (oder nicht) === Alternativen === * [[anwenderwiki:webapps:moodle:moodle_extern_ldap:start]] arbeitet ohne REST-API-Werkzeugen und erledigt mit Bordmitteln und Plugins in Moodle ziemlich viel (siehe dort) * moosh als Shell-Werkzeug kann die REST-API ansteuern * [[anwenderwiki:moodle:moodle3_automatische_einschreibung]] nutzt das openml_enrol plugin für einige der Schritte ===== Anlegen eines API-Nutzers ===== Entsprechend der Anleitung hier: https://moodle.org/mod/forum/discuss.php?d=319039 verwende ich hier die englischen Begriffe, d.h. es lohnt sich für diesen Teil die Sprache des Moodle-Administrators auf "englisch" umzustellen. Im Prinzip wird der Leitfaden hier verwendet: ''Site administration > Plugins > Web services > Overview'' * Als Moodle Admin anmelden, Sprache auf englisch stellen === Webservice aktivieren === - Webservice aktivieren (falls nicht schon geschehen): * '' Site administration -> Advanced features'': enablewebservices: Yes and save changes - Webservice Protokoll "rest" aktivieren (falls nicht schon geschehen): * ''Site Administration > Plugins > Web Services -> Manage protocols'': * REST protocol: aufs Auge drücken (sichtbar machen) -> Save changes === Nutzer anlegen und Webservice-Rolle anlegen und zuweisen === - Einen neuen Nutzer erstellen: * ''Site Administrator > Users > Accounts > Add new user'' Username: moodleapiuser (use your own) Password: (use your own) Email: use your own Fill in the required fields. - Erstelle eine neue Rolle: * ''Site Administrator > Users > Permissions > Define roles'' * press the Add new role button * Select Role archetype = ARCHETYPE: Manager and press continue Shortname: apiservicemanager Custom Name: API Service Manager Context types where this role may be assigned: System/User/Category/Course Leave the rest selections as they appear. -> Capabilities Add the following capabilities webservice/rest:use moodle/user:create enrol/manual:enrol enrol/category:synchronised enrol/manual:unenrolself then press create this role button. - Die Rolle dem moodleapiuser zuweisen: * ''Site Administrator > Users > Permissions > Assign System Roles'' * weise den moodleapiuser zu === Webservice anlegen und den User erlauben === - Webservice erzeugen, der die notwendigen Rechte besitzt etwas zu tun: Ich beschließe alles in einen Webservice zu packen, der von dem aufgerufen werden darf, der auch Benutzer anlegen darf (unser moodleapiuser) * ''Site Administrator > Plugins > Web Services > External Services'' * "Add" Name: lmn_service Short: lmn_service "Enabled" should be checked "Authorized users only" should be checked Press show more Search for capability moodle/user:create and select it. Press add service. * Jetzt gleich die notwendigen Funktionen zuweisen: ''Add/Edit functions'' core_course_create_categories core_course_create_courses core_course_get_categories core_course_get_courses_by_field core_course_update_categories core_user_create_user enrol_manual_enrol_users core_webservice_get_site_info - Dieser Service jetzt dem "moodleapiuser" als "Authorized user" zuweisen: ''Site Administrator > Plugins > Web Services > External Services'' -> Custom services: -> lmn_service -> "Authorized Users" ... User suchen und auf "Add" klicken === Nutzer-Token erstellen === - Authorization Token für den "moodleapiuser" erstellen: * ''Site Administrator > Plugins > Web Services > External Services > Manage Tokens'' Username: moodleapiuser Service: lmn_service Save changes - Token, wie z.B. ''d09823e2f5fb5e4880506f32f60fafe3'' kopieren für später... === Testen === - Den WEbservice mit dem Token testen: * '' Site Administration > Development > Web service test client'': Authentication method: token Protocol: REST protocol Function: core_webservice_get_site_info -> Select Token eingeben -> Execute ... falls es nicht funktioniert falls es funktioniert ==== Rollen-IDs herausbekommen ==== - ''Site administration > Users > Permissions > Define roles'' * Betrachte die URL bei "Student" und bei "Teacher", dort erscheint "roleid=5" bzw. "roleid=3" respektive für mein gerade installiertes Moodle. Gilt auch bei Belwue. ===== Daten in Moodle mit ldap2moodle.py manipulieren ===== ==== Download von ldap2moodle.py ==== ==== Konfiguration von ldap2moodle.py ==== ==== Anpassung von ldap2moodle.py ==== ===== Credits ===== - Thomas Schröder - Eli... Michael ...