Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:moodle:rest_api_nutzen]] 

Was diese Anleitung kann

  1. 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.
  2. 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

  • moodle_extern_ldap 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
  • 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

  1. Webservice aktivieren (falls nicht schon geschehen):
    • Site administration → Advanced features: enablewebservices: Yes and save changes
  2. 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

  1. 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.
  2. 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.

  3. Die Rolle dem moodleapiuser zuweisen:
    • Site Administrator > Users > Permissions > Assign System Roles
    • weise den moodleapiuser zu

Webservice anlegen und den User erlauben

  1. 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
  2. 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

  1. Authorization Token für den „moodleapiuser“ erstellen:
    • Site Administrator > Plugins > Web Services > External Services > Manage Tokens
      Username: moodleapiuser
      Service: lmn_service
      Save changes
  2. Token, wie z.B. d09823e2f5fb5e4880506f32f60fafe3 kopieren für später…

Testen

  1. 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
      <EXCEPTION class="webservice_access_exception"> ... falls es nicht funktioniert
      <RESPONSE ...> falls es funktioniert

Rollen-IDs herausbekommen

  1. 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 …

 [[anwenderwiki:moodle:rest_api_nutzen]] anwenderwiki/moodle/rest_api_nutzen.txt · Zuletzt geändert: 2021/04/13 22:37 von tobias