====== 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 ...