WebUI: Projekt "alle User" enthält nicht alle User...?

Hi.
Ich bin gerade nicht mehr sicher, ob wir diese Frage schon mal diskutiert hatten:

Ich hatte schon zu v6-Zeiten immer ein Projekt namens „p_alle_user“, um damit zB. unter moodle sehr einfach sämtliche User als globale Gruppe in einen Kurs einschreiben zu können.

Im v7-WebUI hatte ich schon vor längerer Zeit auch so ein Projekt angelegt:

Und obwohl sich in dem Projekt sämtliche Gruppen befinden, werden dennoch leider nicht die User darin „aufgelöst“. Ich sehe zwar:
sophomorix-project -v -i -p p_alle_user → MemberGroups: 41

Allerdings bringt mir das nichts. Unter moodle kann ich die globale Gruppe p_alle_user zwar finden, doch dort wird dann angezeigt: 0 Einschreibungen.
Daher die Frage: Wo liegt hier der Fehler? Auf v7-Seite oder auf moodle-Seite?
Und wie löst man das am besten?

Viele Grüße,
Michael

Hallo Michael,

wie genau bildest Du denn die Projekte auf Globale Gruppen in Moodle ab?
An dieser Stelle müsste die Rekursion aufgelöst werden.

In Deiner Gruppe sind ja nicht Personen, sondern andere Gruppen
Mitglieder. Zu den Personen kommt man erst, wenn man diese Gruppen auflöst.

Beste Grüße

Jörg

Hi. Das musste ich bisher nicht. Wenn ich in einem Moodle Kurs die globale Gruppe „p_alle_user“ eingeschrieben habe, waren dort zu V6 Zeiten immer sofort alle User drin …
Das scheint jetzt offenbar anders zu sein?

Übrigens: es läuft mit dem guten alten openlml_enrol und den passenden v7-Einstellungen, die hier vor einiger Zeit gepostet wurden.
Andere Projekte, in denen sich direkt User und keine Gruppen"objekte" befinden, werden problemlos richtig dargestellt.

Und jetzt, wo ich darüber nachdenke wird, wird mir klar, dass vermutlich das gleiche Problem auch bei der Anbindung an die niedersachsen.cloud besteht. Da „sieht“ man bei der LDAP/AD-Anbindung auch nur das Objekt „5a“, nicht aber die User darin…

Viele Grüße
Michael

Hi Michael,

das hängt davon ab wie du die Gruppe befüllst, in dem Fall muss wie schon richtig geschrieben Moodle mit den Nested Groups umgehen können.

Wenn Moodle das so nicht kann kannst du vllt. die role-students und role-teacher hierfür freischalten. Damit solltest du nahezu alle Nutzer abholen können. Es wird natürlich nicht funktionieren diese in ein Projekt zu packen, auch hier hast du wieder Nested Groups.

Hallo Andreas.
Ok – das ist gut zu wissen. Allerdings frage ich mich dann, wozu die Funktion „Gruppe in Projekt holen“ anderes dienen soll? So ergibt diese Möglichkeit doch keinen Sinn, oder?

Viele Grüße,
Michael

Hi Michael,

das hängt von der angebundenen Software ab. Ich denke Moodle kann generell schon mit verschachtelten Gruppen umgehen, das wird nur konfiguriert werden müssen.

Das ist kein Server sondern ein Client Problem. Der Client ist in diesem Fall Moodle.

Hi.
Allerdings hat moodle das ja zu v6-Zeiten schon mal richtig gemacht. Wie gesagt: Das gleiche Problem tritt ja auch bei der niedersachsen.cloud auf. Details dazu wurden schon mal hier diskutiert:

Das Problem bleibt also bestehen … auch wenn man vielleicht den Blickwinkel darauf ändern muss.

Vielleicht wäre es ja auch denkbar, eine Möglichkeit direkt im WebUI zu schaffen, so dass man dort einen „beliebigen“ ldap-Filter absetzen kann, also ganz konkret hier:


Ich könnte wetten, dass das sehr vielen v7-Usern extrem weiterhelfen würde, da man damit sehr schnell Gruppen/Leute zusammenfassen kann, die dann als Projekt zur Verfügung stünden und in anderen Plattformen (wie moodle) zur Verfügung stünden…!?

Viele Grüße,
Michael

Wie sah denn die Gruppenstruktur in v6 aus? Generell gab es in der v6 recht wenig Gruppen. Ich nehme mal an du hattest einfach flach alle Nutzer in diesem Projekt. Das würde natürlich auch mit v7 funktionieren.

Genau – es ging lediglich darum, ein Projekt zu haben, in dem sich alle User befinden. Zudem muss dieses Projekt natürlich eine Versetzung am Schuljahresanfang überleben und auch danach noch alle User beinhalten.

Daher hatte ich alle Klassen, die Lehrer und die ganze Oberstufe (jeweils Gruppen) in dieses Prokekt eingeschrieben und dachte, dass ich fertig sei…

Ich bin übrigens weiterhin nicht sicher, ob der „Fehler“ nicht doch auf v7-Server-Seite zu suchen ist, denn hier steht:


Die Anzahl der Benutzer wird also schon hier nicht richtig aufgelöst. Es müssten über 1300 User angezeigt werden … kann natürlich sein, dass das WebUI hier nur die einzeln eingetragenen Benutzer zählt und nicht in die Gruppen springt und dort weiter zählt … ?!?

Genau das ist der Fall.

Wenn du eine Flache Gruppe mit allen Nutzern willst musst du nur mittels sophomorix-query dir alle Nutzer ausgeben lassen und in dein Projekt schreiben lassen. Das ist für einen geübten Bash experten eigentlich ein Einzeiler.

sophomorix-query --sam „*“ --scholbase default-school

sollte dir eigentlich alles nötige ausgeben :slight_smile:

Ok, danke. Das sehe ich mir an. Allerdings wäre es selbstverständlich sehr viel hübscher, wenn es im WebUI genauso funktionieren würde…

Ein so erstelltes Projekt überlebt aber die Versetzung nicht, oder?

Ok – ich habe einen Ausdruck (etwas länger geratener Einzeiler!) gefunden, der alle User zum Projekt p_alle_user hinzufügt … ist vielleicht nicht die eleganteste aller Lösungen aber sie hat hier funktioniert.

Wer das gebrauchen kann …


sophomorix-project -p p_alle_user --addmembers  

    $(  ldapsearch  -b "ou=default-school,ou=SCHOOLS,dc=linuxmuster,dc=lan" -H ldaps://server.linuxmuster.lan:636 -x -D global-binduser@linuxmuster.lan -w super-geheimes-passwort '(&(!(sophomorixAdminClass=hausmeister))(!(sophomorixAdminClass=sekretariat))(!(sophomorixAdminClass=extraschueler))(!(sophomorixAdminClass=attic))(|(sophomorixRole=student)))' |grep -e sAMAccountName | awk '{ ORS=/sAMAccountName:/ ?"":"\n"} {print $2","}'  )

Zur Erklärung: Der vordere Befehl füllt das Projekt p_alle_user auf und der hintere Befehl filtert sämtliche User-Logins heraus, wobei er alles weglässt, was zu attic, hausmeister, extraschüler oder sekretariat gehört. Die Ausgabe wird mit awk direkt kommasepariert angezeigt … hat funktioniert!

Hallo,

bei der LMN 6 wurden die rekursiven Gruppen von Sophomorix intern verwaltet, im LDAP landeten dann alle Mitglieder direkt. Bei der LMN 7 hat Sophomorix keine eigene Datenbank mehr, und so werden im LDAP rekursive Gruppen verwendet.

Es muss nun wie schon beschrieben der Client die Gruppen auflösen. Ob das alte openlml-enrol das kann, das weiß ich nicht. Die von uns verwendeten " LDAP syncing scripts" haben eine entsprechende Option, ich habe sie aber noch nicht getestet.

Beste Grüße

Jörg

Was hat es denn damit auf sich??
Meinst du deine Anleitung im Wiki unter

??

Viele Grüße,
Michael

Hallo Michael,

ja, genauer gesagt - die hier:

https://wiki.linuxmuster.net/community/anwenderwiki:webapps:moodle:moodle_extern_ldap:start

Das klappt bei uns ganz gut. Schön finde ich, dass man durch die Kombination der beiden Tools bei den Klassen die eingeschriebenen Lehrer nicht in der Gruppe landen, nur die SuS. Etwas nervig ist, dass man das Plugin bei jedem Upgrade wieder zurückkopieren muss - aber das ist bei dem openlml-enrol vermutlich auch so.

Beste Grüße

Jörg

Hi, das openlml Plugin liefert ja bereits die globalen Gruppen (nur Klassen ohne Lehrer). Das funktioniert wieder mit dem v7 Server … auch mit der sehr alten Version des Plugins . Wie es sich bei Updates verhält, weiß ich gerade nicht auswendig…

Eine Umstellung auf deine Vorgehensweise sieht mir kompliziert aus. Im Moment habe ich mir mit der o.g. Vorgehensweise geholfen: Das Projekt p_alle_user ist wieder gefüllt. Zudem funktioniert unter Moodle ja die Meta-Einschreibung von Gruppen in Kurse ganz gut. Das übersteht wahrscheinlich auch eine Versetzung…

Aber mittelfristig ist klar, dass man viel mehr Gruppen und Strukturen abbilden muss, als man sie per LDAP/AD abrufen kann. Ob man das dann alles als Projekt → globale Gruppe machen sollte, ist nicht ganz klar. Thomas @thoschi hatte ja seinerzeit schon auf seinen Weg mittels Moodle API hingewiesen.

Viele Grüße
Michael