Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:moodle:moodle3_automatische_einschreibung]] 

Moodle 3.x und automatische Einschreibung mit der Linuxmusterlösung

Dieser Artikel bezieht sich auf Moodle 3.x. Den Artikel für Moodle 2.x finden sie unter moodle2_automatische_einschreibung.

Mängel

Moodle ist in die LinuxML bisher noch nicht gut integriert. Es gibt aus meiner Sicht einige Schwächen der Konfiguration, die ich zu beheben versucht habe.

  • Benutzer müssen in Moodle angelegt und verwaltet werden, obwohl diese in der LinuxML bereits existieren.
  • Ein Lehrerzimmer (ein Kurs nur für Lehrer) muss manuell angelegt und jeder Lehrer dort manuell eingetragen werden, obwohl bereits alle notwendigen Informationen (jeder Lehrer ist Mitglied der Gruppe teachers) in der LinuxML vorhanden ist.
  • Schüler müssen in Kurse / Klassen manuell eingetragen werden, obwohl im LDAP-Baum der LinuxML die Grupenzugehörigkeit vorhanden ist.
  • Für jeden Lehrer muss ein Kursbereich, in welchem er selbst Kurse anlegen und löschen kann, manuell angelegt werden, obwohl auch hierzu die Voraussetzungen und Informationen bereits vorhanden sind.

Ausweg

Ich habe versucht, die oben angesprochenen Punkte so weit wie möglich auszuräumen. Dabei ist ein Anmeldemodul für Moodle herausgekommen, das in meiner Schule nach ersten Tests zufriedenstellend funktioniert. Bei der komplexen Struktur der Materie kann es natürlich sein, dass jemand anders ganz andere Erfahrungen macht. Inzwischen verwende ich Moodle3.0.2 und das angepasste Modul heißt enrol_openlml.

Dieses Modul basiert auf der Authentifizierung der moodle-Nutzer mittels LDAP. Bei der üblichen Verwendung von LDAP meldet sich ein LinuxML-Nutzer bei moodle an und ergänzt im Profil die E-Mail-Adresse. Nach deren Überprüfung ist der LinuxML-Nutzer in moodle aufgenommen und schreibt sich in die vorgesehenen Kurse ein. Das Modul enrol-openlml führt die Aufnahme aller LinuxML-Nutzer in moodle durch und kann diese gleich in Kurse einschreiben. Wird bei der Aufnahme die E-Mail-Adresse aus dem LDAP-Baum verwendet, kann der Nutzer sofort auf die moodle-Inhalte zugreifen.

Bevor man loslegt

Falls schon Benutzer in moodle eingeschrieben sind, ist eine Sicherung der Benutzerdaten sinnvoll. Dies kann über die Bulk Suche gemacht werden. Dort kann eine CSV-Datei mit allen Nutzern heruntergeladen werden. Wenn mit der Einrichtung von enrol-openlml etwas schief geht, z.B. die bestehenden Nutzer ungewollt geändert wurden, löscht man alle moodle-Nutzer (natürlich ohne Standardnutzer) und spielt die CSV-Datei über den Listenupload wieder auf.

OpenLML-Einschreibung

Ich arbeite momentan an der Weiterentwicklung des Einschreibe-Moduls. Ich habe es unter dem Namen enrol_openlml als Plugin bei http://www.moodle.org in einer Beta-Version veröffentlicht.

Die Version ist dort als http://moodle.org/plugins/pluginversions.php?plugin=enrol_openlml herunterladbar1).

Die Installation ist denkbar einfach: Die ZIP-Datei im Moodle-Hauptordner (/usr/share/moodle) entpacken. Die Konfiguration erfolgt über Website-Administration → Plugins → Open LML Einschreibung.

Weitere Informationen finden Sie auf der Moodle-Seite2).

Neuigkeiten

  • Das Modul verwendet jetzt die Globalen Gruppen(cohorts) von Moodle2.
  • Das Modul setzt die Aktivierung von enrol_cohort (Globale Gruppen) für die Einschreibung voraus.

Eigenschaften

Es handelt sich um ein Modul für Moodle, das

  • Lehrer automatisch in Kurse einschreibt, die entsprechend gekennzeichnet sind.
  • Schüler automatisch in Kurse einschreibt, die entsprechend gekennzeichnet sind (es werden Klassen und Projekte der openLML unterstützt).
  • Schüler aus mehreren Klassen können in einem Kurs zusammengefasst werden.
  • Einen Kursbereich für jeden Lehrer in einem Kursbereich namens Lehrer bei dessen erstmaliger Anmeldung anlegt.
  • Bei einem speziellen Projekt-Präfix auch Lehrer als Kursteilnehmer zulässt (z.B. für Fachgruppen-Kurse).

Installation

Die Datei enthält die Moduldateien für Moodle(die deutsche Sprachdatei befindet sich im deutschen Sprachpaket).

Kopieren Sie die Datei in das Verzeichnis

/usr/share/moodle/enrol

und packen Sie es dort mit dem Befehl

unzip enrol_openlml....zip

aus. Dabei wird das Unterverzeichnis openlml angelegt. Dort befinden sich alle Dateien dieses Moduls.

Test der Installation

Man meldet sich bei Moodle als Administrator(wwwadmin) an und geht zu Website-Administration→Plugins→Einschreibung. Dort ist ein neuer Eintrag namens OpenLML Einschreibung vorhanden.

Einrichtung

Voraussetzung

Voraussetzung für die Nutzung des OpenLML-Moduls ist die Aktivierung der LDAP-Authentifizierung, der manuellen Einschreibung und der automatischen Einschreibung globaler Gruppen.

Einrichtung der manuellen Einschreibung

Man meldet sich als Administrator(wwwadmin) an und geht auf die Seite Website-Administration→Plugins→Einschreibung→Übersicht. Dort befindet sich der Eintrag Manuelle Einschreibung. Diesen wählt man aus3). Weitere Einstellungen sind für dieses Modul nicht nötig.

Einrichtung der Einschreibung globaler Gruppen

Man meldet sich als Administrator(wwwadmin) an und geht auf die Seite Website-Administration→Plugins→Einschreibung→Übersicht. Dort befindet sich der Eintrag Globale Gruppen. Diesen wählt man aus. Weitere Einstellungen sind für dieses Modul nicht nötig.

Einrichtung der LDAP-Authentifizierung

Man meldet sich als Administrator(wwwadmin) an und geht auf die Seite Website-Administration→Plugins→Authentifizierung→Übersicht. Dort befindet sich der Eintrag LDAP-Server. Diesen wählt man aus.

Die Einträge in der LDAP-Datenbank können nun über die LDAP-Attribute ( z.B. givenName, sn, mail) für die moodle-Benutzerdaten verwendet werden.

Ausblendung von Klassenarbeitsbenutzern

Zunächst muss im Bereich Nutzersuche4) das Feld objectClass verändert werden. Dort darf nicht nur eine Objektklasse sondern auch ein Filterkriterium eingetragen werden. Um die Klassenarbeitsnutzer auszufiltern, trägt man folgendes ein:

objectClass: (&(objectClass=posixAccount)(!(cn=ExamAccount)))
Datenzuordnung

Außerdem folgt der Bereich Datenzuordnung5), in welchem die Zuordnung von LDAP-Daten zu Moodle-Daten festgelegt wird. Entscheidend ist das Feld ID-Nummer.

ID-Nummer: uid
Update lokaler Daten: Bei jedem Login
Update externer Daten: Nie
Sperrwert: Gesperrt

Man speichert die Änderungen und kann jetzt das LML-Modul einrichten.

Weitere nützliche Felder

Folgende Felder sollte man ebenfalls aus dem LDAP-Baum in Moodle übernehmen, damit die Benutzergrunddaten vorhanden sind. Die Werte sind hier in der Reihenfolge wie unter Datenzuordnung angegeben, also

LDAP-Attribut / Update lokaler Daten / Update externer Daten / Sperrwert:

Vorname: givenName / Bei jedem Login / Nie / Bearbeitbar
Nachname: sn / Bei jedem Login / Nie / Bearbeitbar
E-Mail-Adresse: mail / Beim Anlegen / Nie / Bearbeitbar

(Das LDAP Attribut _givenName_ enthält manchmal fälschlicherweise den Benutzernamen, das war mal ein Fehler beim Benutzer anlegen, der durch einen Lauf von sophomorix-dump-pg2ldap behoben werden kann.)

Zu füllende Felder

Moodle benötigt noch Daten im Feld Stadt/Ort. Andernfalls muss der betroffene Benutzer beim ersten Anmelden diese Daten eintragen. Daher muss unter Website-Administration→Lokales→Stadt/Ort die gewünschte Stadt eingetragen werden. Damit wird diese Stadt bei allen LDAP-Benutzerung mit leerem Feld Stadt/Ort automatisch bei der Synchronisierung durch das Skript enrol_openlml eingetragen.

Automatische Benutzerübernahme

Für die automatische Benutzerübernahme muss unter Moodle als Administrator (wwwadmin) unter Website-Administration→Server→Geplaten Vorgänge der Vorgang LDAP users sync Job aktiviert und regelmäßig ausgeführt werden. Standardmäßig wird dieser Job einmal pro Tag ausgeführt, was bedeutet, dass neue Benutzer bei Anmeldung oder spätestens nach einem Tag in Moodle vorhanden sind.

Für BelWü Nutzer: Der bisher notwendige Patch ist nicht mehr notwendig.

Automatische Löschung von Benutzern

Damit Nutzer, die auf LinuxML gelöscht wurden, auch in moodle entfernt werden, muss unter Website-Administration→Plugins→Authentifizierung→LDAP-Server die Konfiguration angepasst werden:

Bei „Cron-Synchronisationsscript“ muss „entfernte externe Nutzer“ auf „intern löschen“ stehen.

OpenLML-Modul einrichten

Man meldet sich als Administrator (wwwadmin) an und geht zu Website-Administration→Plugins→Einschreibung→Übersicht. Dort aktiviert man das Modul OpenLML Einschreibung. Dann speichert man die Änderungen. Als nächstes klickt man bei OpenLML Einschreibung auf Einstellungen. Ich gebe unten die Einträge für meine Schule an.

Allgemeine LDAP-Einstellungen
-----------------------------
Kontexte: ou=groups,dc=linuxmuster,dc=lokal
Objektart: posixGroup
Gruppenattribut: cn
Mitgliedsattribut: memberuid

Lehrergruppen-Einstellungen
---------------------------
Lehrergruppe: teachers
Lehrerrolle: Teilnehmer/in
Lehrerkurse: p_teachers_

Lehrer-Kursbereicheinstellungen
-------------------------------
Lehrer-Kursbereich: Lehrer
Lehrerrolle: Kursverwalter/in
automatisch erzeugen: Ja
automatisch entfernen: Ja
entfernte Kursbereiche: attic
ignorierte Lehrer: administrator

Schülereinstellungen
--------------------
Klassenstufen: 5,6,7,8,9,10,11,12
Weitere Gruppen:
Projekt-Präfix: p_
Schülerrolle: Teilnehmer/in

Nun speichert man die Änderungen.

Test der Einrichtung

Man meldet sich als ein Lehrer an. Es sollte automatisch der Kursbereich Lehrer erscheinen. In diesem Kursbereich sollte ein Unterbereich mit dem Benutzernamen dieses Lehrers erscheinen, in welchem der Lehrer Kursverwalter ist.

Man legt in diesem Kursbereich einen Kurs mit dem Kurznamen 5a-Mathe an und gibt für die Kurs-ID den Kurznamen gefolgt von der Bezeichnung einer existierenden Klasse an, z.B. 5a-Mathe:5a. Es ist auch möglich, mehrere Klassen oder Projekte einzutragen, z.B.

Kurs-ID: 5a-Mathe:5a,5b,5c,5d,5e

für einen Kurs mit allen 5. Klassen.

Man meldet sich als root auf dem Server an und synchronisiert die Eintragungen durch Aufruf von:

cd /usr/share/moodle/enrol/openlml/cli
su www-data
php sync.php

Es erscheinen einige Meldungen zur Einschreibung6). Dann geht man zurück in Moodle und schaut sich die Teilnehmer des eben erstellten Kurses an. Es sollten alle Schüler der 5a7) eingetragen sein.

Man erstellt einen Kurs mit dem Kurznamen Lehrerzimmer und trägt als Kurs-ID Lehrerzimmer:teachers ein. Dann führt man wieder das Synchronisationsskript sync.php aus und kontrolliert, dass alle Lehrer jetzt Mitglieder des Lehrerzimmers sind8).

Nach diesen Tests sollte das OpenLML-Modul funktionieren.

Das Sync-Script kann auch aus der Ferne angestoßen werden: https://MOODLE-URL/moodle/admin/cron.php bzw. in moodle hierfür ein Passwort vergeben und https://MOODLE-URL/moodle/admin/cron.php?password=wasauchimmer aufrufen.

Automatisierung

Das Modul wird bei der Installation automatisch bei den Geplaten Vorgängen eingetragen und aktiviert, sodass es standardmäßig einmal pro Stunde ausgeführt wird9).

Nützliche Anpassungen

Kurse selbst löschen

Bei meinem Moodle ist die Standardeinstellung, dass Kursverwalter Kurse nicht löschen dürfen. Diese Einstellung erfordert von einem Administrator, Kurse in regelmäßigen Abständen zu durchforsten. Ich bin an dieser Stelle für eine Umverteilung der Arbeit auf alle Lehrer.

Dazu meldet man sich als wwwadmin bei Moodle an und sucht die entsprechende Einstellung im Block Nutzerrechte:

Nutzer/innen
-> Zugriffsrechte
-> Rollen verwalten

Dort wählt man die Rolle Kursverwalter/in, um die Rollendetails zu sehen und klickt dort auf Bearbeiten. Im Bereich Kurse lautet die gewünschte Eigenschaft:

Kurse löschen
moodle/course:delete

Hier muss die Einstellung Erlauben lauten. Damit kann jeder Kursverwalter in seinem eigenen Bereich Kurse löschen.

1)
ich bin für Tests und Rückmeldungen dankbar
2)
alles auch auf deutsch
3)
das ist auch die Standardeinstellung
4)
user lookup
5)
Data-Mapping
6)
Sollte der obige Befehl fehlschlagen, ist vermutlich die PHP-Version daran schuld. Moodle benötigt im Befehlsfenster die Version PHP 5.3.x
7)
bzw. die Schüler/Lehrer der Gruppe, die sie als Kurs-ID eingetragen haben
8)
In normalen Kursen können Lehrer nicht Teilnehmer sein, es sei denn sie gehören zu den besonderen Projekt-Präfix-Bereichen, die unter Lehrerkurse eingestellt werden
9)
ein häufigeres Ausführen belastet den Server
 [[anwenderwiki:moodle:moodle3_automatische_einschreibung]] anwenderwiki/moodle/moodle3_automatische_einschreibung.txt · Zuletzt geändert: 2016/02/08 15:08 von 127.0.0.1