Hallo.
Es ist eine never-ending-Story … aber ich hatte gerade folgende Idee:
Das Feld mail im AD ist offenbar nicht „stabil“, da es von jedem sophomorix-update wieder auf den Standard-Wert überschrieben wird. Wenn man den Eintrag also selbst ändert, hat man nicht lange etwas davon.
Andererseits ist das sophomorixCustom1-Custom-Feld nicht per default eingetragen … daher frage ich mich, ob etwas gegen diese Vorgehensweise spricht:
Mit sophomorix-user -u <username> –set-single-value-attribute sophomorixCustom1 –entry <login@meine-schule.de>
könnte man die gleiche Adresse, die im Feld mail steht, auch in das Feld sophomorixCustom1 übertragen. Das wäre mit einem Mini-Script schnell erledigt…
Danach könnte man sowohl unter moodle als auch Nextcloud anstelle des mail- Feldes in den User-Profilen das sophomorixCustom1-Feld verwenden. Der sinnvolle Nebeneffekt wäre meiner Meinung nach: In Kombination mit der Landingpage von @dorian könnte jeder, der eine andere Adresse als die Dienst-Adresse im sophomorixCustom1-Feld einträgt diese Adresse permanent behalten.
Der nächste sophomorix-update-Durchlauf würde das nicht wieder ändern. Setzt das zufällig jemand von Euch so um?
Spricht etwas dagegen oder habe ich etwas übersehen?
Das ist genau was ich dich vor ein paar Monate vorgeschlagen habe, und auch was ich mache. Einige externe Dienste von uns nutzen dieses Feld anstatt mail. Die Customfelder kann man jetzt in die Webui auch steuern.
Was noch fehlt, ist das der User es anpassen kann.
Hallo Arnaud,
ja, ich weiß, dass Du das vorgeschlagen hattest … allerdings fehlte da imho der Schritt, dass man die Einträge beider Felder zunächst für alle User identisch macht, oder?
Viele Grüße,
Michael
Ich verstehe da der Sinn nicht. Das Ziel ist die custom Felder zu verwenden um eine andere Emailaddresse einzutragen.
Falls es darum geht, auf einmal Massenänderung zu erledigen, dafür sind die sophomorix Custom Filter da : Export and Filters · linuxmuster/sophomorix4 Wiki · GitHub ( das hatte Dorian auch erwähnt ).
So sollte den Workflow aussehen :
export aus ASB ( z.B. oder etwas anderes ) mit Email,
Kopie auf dem LMN Server,
importieren mit Custom Filter ( der Custom filter sollte geschrieben sein, um alle Email ins customFeld zu updaten ).
Solche CustomFilterSkript habe ich nicht geschrieben, da ich es nicht brauche.
Genau – das Problem dabei ist aber: Ich muss mich bei moodle / Nextcloud / $LDAP-Dienst immer entscheiden, wie das Feld heißt, in dem die eMail-Adresse steht. Setzte ich da also mail erhalte ich zwar für alle User eine gültige Adresse – aber die wäre beim nächsten sophomorix-Durchlauf wieder auf dem default-Wert.
Setze ich hingegen die sophomorixCustom1-Adresse, so wäre das Feld bei ganz vielen Usern am Anfang leer.
Daher meinte ich: Am Anfang sollten beide Einträge identisch gemacht werden. Nur dann hätte jeder User eine gültige Adresse UND man könnte sie anschließend problemlos ändern…
Du nutzst Landing Page von Dorian. So, wenn Landing Page mit sophomorixCustom1 anstatt mail konfiguriert ist, können deine User die Email ändern.
Damit bleibt deine Hauptfrage : wie kann man die EInträge aus mail ins sophomorixCustom1 kopieren ? Entweder per Skript oder von Hand. Das muss man sowieso nur einmal tun, danach ist es erledigt.
Ja, ich wollte den Befehl vorhin schon anwerfen … doch bevor ich irgendwelche Aktionen am AD mache, frage ich vorher meistens doch lieber nochmal hier im Forum. Es könnte ja irgendwelche Nebenwirkungen haben, die man gerade überhaupt nicht auf dem Zettel hat…?!
Natürlich könnte man mit der Landingpage auch zunächst alle User „zwingen“, sich da anzumelden, eine gültige sophomorixCustom1 Adresse einzutragen und hätte das Problem auch gelöst … aber ich wette, dass es dann einige doch wieder nicht machen … der andere Weg ist eleganter.
Allerdings: Wie gehst Du nach der nächsten Versetzung vor? Dann müsstest Du ja nur diejenigen User erwischen, bei denen das Feld noch leer ist (also z.B. der gesamte neue Jahrgang 5).
Ok aber auch für diese Einträge gilt das gleiche: kommt im neuen Schuljahr ein neuer Kollege dazu, kannst du nicht einfach für alle erneut den Befehl absetzen, der die mail-Adresse auf das sophomorixCustom-Feld kopiert. Dann wären eigene Eintragungen überschrieben/gelöscht. Daher muss man sich auch für diesen Fall einen Weg überlegen, wie man nur die User abfragt, bei denen im sophomorixCustom-Feld noch nichts steht …
Wenn es nur einzelne User sind, hast Du natürlich Recht … aber wenn man schulweite Adressen für alle anbieten will, ist das per Handarbeit nicht umsetzbar, meine ich.
Hi, wir gesagt: das Kopieren selbst ist nicht das Problem. Berücksichtigt Dein Script denn den Fall, dass nur dann kopiert wird, wenn das custom-Feld noch leer ist?
Wenn ich das richtig sehe, kann man das Feld sophomorixCustom1 nicht einfach über sowas wie [[ ! -z "$var" ]] abfragen, da es bei den Usern, die da noch nichts eingetragen haben, überhaupt nicht angezeigt wird, richtig? (Ich habe es mit sophomorix-user wie auch mit ldapsearch versucht …). Daher ist mir nicht ganz klar, wie ich danach mit den üblichen Bordmitteln grep’en lassen soll?!
Ich hab das nur zusammen gehackt und es war sehr spezifisch auf unsere Installation zugeschnitten. Ich habe leider kein fertiges Script, das Du einfach so benutzen kannst. Außerdem hab ich Python benutzt und kein Bash, weil mein Script noch alles Mögliche andere mit den Nutzern macht, und mir Sophomorix dafür zu langsam ist.
Probier mal ein bisschen rum, du wirst es schon hinbekommen.
… und tatsächlich. Es ist viel einfacher als gedacht, diejenigen zu filtern, die das Attribut sophomorixCustom1nicht besitzen. Es klappt, wenn man den Suchbefehl auf diese Weise ändert:
Das spuckt dann nur noch diejenigen Accounts aus, die ihre eMail-Adresse noch nicht geändert haben. Diese Ausgabe lässt sich nun noch durch awk pipen – et voilà