Hallo,
aktuell richte ich auf unserem neuen lmn7 System die Moodle Anbindung per LDAP ein. Die Schüler werden auch schon übernommen. Jetzt möchte ich die Schüler über Moodle-User anhand eines Profilfeldes in globale Gruppen einzutragen. Allerdings überträgt mir LDAP als Klasse/Lerngruppe folgendens \server\default-school\students\b3mat\nutzername kann ich das irgendwo einstellen das er da nur die Klassenbezeichnung darstellt?!
du musst im Authentifizierungs-Plugin für den LDAP-Server unter Daten übernehmen (Klasse/Lerngruppe) (auth_ldap | field_map_profile_field_class) den Wert sophomorixAdminClass eintragen. Das Feld Lokal aktualisieren (Klasse/Lerngruppe) würde ich auf Bei jedem Login stellen.
das hatte ich auch gefunden: wußte aber nicht, was ich da so reinschreiben sollte.
Jetzt hab ich mal ein „Class“ mit dem Namen „Klasse/Lerngruppe“ angelegt … mal sehen ob es:
vom LDAP sync befüllt wird
ob ich es eingerichtet bekomme, dass die Globalen Gruppen darauf befüllt werden.
Ich mach aber noch einen anderen Tread auf zum Problem …
ich hab das Profilfeld angelegt: ganz schön doof, dass man nirgends sehen kann, was da drin steht
Aber nu? Wie kann ich das zum Einsortieren in die globalen Gruppen nutzen?
Mit diesem Plugin? https://moodle.org/plugins/local_profilecohort
Verwendet das jemand?
Es scheint aufwändiger beim Umsetzen (man muss für alle Globalen Gruppen eine Regel anlegen … das sind einige bei mir), aber es scheint mir transparenter als die ganzen sync Dinger (fühlte sich immer an wie Voodoo und hat auch immer wieder Ärger gemacht).
Hallo Holger,
ja, das verwende ich genauso. Hat hier auch etwas gedauert, da das Anlegen echt nervig war … aber seitdem ist Ruhe und die globalen Gruppen sind gefüllt.
Ich habe aber mittlerweile auch mein eigenes Script zum Anlegen und Importieren von globalen Gruppen per CSV optimiert – auch das tut was es soll.
Du musst noch auf der Konfigurationsseite der LDAP-Authentifizierung angeben, dass das Profilfeld aus dem LDAP befüllt werden soll (genau wie z. B. Name oder E-Mail). Dann kannst Du es mit genau diesem Plugin nutzen.
Wir nutzen diese Methode für die Klassen und für die Projekte die LDAP-Syncing-Skripts. Warum? Weil bei den Klassen auch Lehrerinnen und Lehrer Mitglied sind, die sollen aber nicht in di8e Globale Gruppe. Bei den Projekten ist mir das egal.
So habe ich das einmalig für alle Klassen angelegt (war etwas Arbeit), für unsere paar Dutzend Projekte (alle Kurse und klassenübergreifende Lerngruppen) geht es automatisch mit dem anderen Plugin. Beschrieben habe ich das hier:
ich kenne deine wiki Seite: danach hab ich es ja damals eingerichtet: und hat ja auch (meist) funktioniert (also das local ldap sync script).
Das mit den Lehrern in den globalen Klassengruppen ist auch doof, deswegen kann ich es gut verstehen, dass du das mit dem Profilfeld machst.
Der „Fehler“ ist bei dem ldap syncscript, dass man die Gruppe 5a nimmt und nicht das Feld SophomorixAdminClass.
Ich habe nun also ein Profilfeld angelegt und es in den LDAP Servereinstellungen bei Datamining mit sophomorixAdminClass Befüllt.
Im moodle Profil eines LDAP Nutzers sehe ich aber den Eintrag leider nicht: er ist nciht leer, sondern er ist nicht da.
Ich habe das Feld (widerstrebend) wie bei BelWü Klasse/Lehrergruppe genannt (wiederstrebend wegen dem Sopnderzeichen).
Data mapping (Klasse/Lerngruppe): sophomorixAdminClass
Update local (Klasse/Lerngruppe): On every login
Update external (Klasse/Lerngruppe): Never
Lock value (Klasse/Lerngruppe): Locked
Nun habe ich folgende Fragen:
das profil basierte script: es hat einen Task: befüllt es die globalen Gruppen automatisch, oder wirklich nur beim login? (das wäre doof: ich bruache einmal alle in ihren richtigen Klassen).
Eigentlich sollte doch der LDAP sync Task das Feld befüllen und wenn dann der Profiltask das Feld ausliest, dann sollte doch alles Butter sein.
ich habe halt Überreste des openlml enrol Pluging: es gibt also globale Gruppen (die ich nicht löschen nur umnennen kann) die wie meien Klassen heißen.
Bisher war das kein Problem: das LDAP sync script hat die trotzdem befüllt und auch neue, vorher nicht vorhandene Gruppen erstellt.
LG
Holger
PS: dein angepaßtes ldap sync plugin ist wieder runterladbar im wiki: das werde ich jetzt mal installieren …
ich hab dein Plugin installiert und konfiguriert.
Beim ersten Lauf hat er alle meine globalen Gruppen wieder geleert … ich hab nun wieder niemand in irgend einer Gruppe.
komisch, dass Du das Feld nicht siehst. Ich habe gerade mal bei einem anderen Moodle so ein Feld angelegt - kein Problem. Ich muss dazu aber bei einem User auf „Profil bearbeiten“ klicken (was ich hier offenbar auch als Kursleiter kann).
Zu Deinen Fragen:
Das Plugin lauscht auf Events wie „User meldet sich an“ oder „User wurde modifiziert“. Das sollte insbesondere dann der Fall sein, wenn sich ein Profilfeld ändert - hat bei mir aber nicht zuverlässig geklappt. Der Task ist nur relevant, wenn Du die Einstellungen des Plugins veränderst.
Wenn Du bei dem Plugin in der Datei classes/task/update_cohorts.php ganz unten die if-Anweisung deaktivierst, dann müssten beim nächsten Durchlauf des Tasks alle User abgeglichen werden - ist natürlich kein Dauerzustand.
Das ist echt blöd gemacht in Moodle. Ich habe mal in der Datenbank bei allen solchen Cohorten das Feld geleert, in dem steht, dass die Gruppe von dem Openlml-enrol-Plugin erstellt wurde. Dann konnte ich die Gruppen ganz normal im Webfrontend löschen.
jetzt ist es so, dass das locale ldap syncscript bei jedem Lauf die globalen Gruppen leert … so ein Mist …
Die werden durch logins wieder befüllt, aber das geht so nicht, das bringt mir nix…
habe ich das richtig verstanden.
Wenn ich das "Profil Cohorte Sync script nehme, dann kann ich es einmal so einstellen, dass es einmal alle richtig zuordnet. Danach stelle ich es wieder auf „lauschen“
Dann müßte ich nur noch sicherstellen, dass das Profilfeld korrekt gefüllt wird, dann könnte ich das so machen.
Wenn Du mit „einstellen“ meinst: Im Code herumbasteln, dann ja.
Wobei es wie gesagt so sein sollte, dass ein User in die richtige Gruppe eingeschrieben werden sollte, wenn sich der Wert des Profilfeldes ändert. Das klappt bei mir nur nicht immer. Ich habe mal einfach ein anderes LDAP-Feld in das Profilfeld geschrieben, den LDAP-Sync-Task abgewartet und dann wieder das richtige Feld eingetragen - dann hat nach dem nächsten LDAP-Sync-Task alles gepasst.