Creating a ucs@school User Via udm

kudos @troeder
Um alle Optionen und Properties zu sehen, einfach udm users/user ohne weitere Argumente ausführen.

  1. Die Rolle muss gesetzt werden: --append-option=ucsschoolStudent bzw. ucsschoolTeacher / ucsschoolStaff. Für die Rolle “Lehrer und Mitarbeiter” beides setzen.
  2. Alle Schulen (hier OU1 und OU2) die besucht werden sollen setzen: --append school=OU1 --append=school OU2
  3. Die primäre (evtl. einzige) Schule setzen mit der Position des Objekts im LDAP-Baum: --position "cn=schueler,cn=users,ou=OU1,$(ucr get ldap/base)". Die Container variieren bei den Rollen (cn=lehrer, cn=mitarbeiter, cn=lehrer und mitarbeiter). Am Besten mit existierenden Usern vergleichen.
  4. Die folgenden Gruppen setzen: --set "primaryGroup=cn=Domain Users OU1,cn=groups,ou=OU1,$(ucr get ldap/base)" plus --append "groups=cn=schueler-OU1,cn=groups,ou=OU1,$(ucr get ldap/base)" plus die DNs aller Klassen, z.B. --append "groups=cn=OU1-2b,cn=klassen,cn=schueler,cn=groups,ou=OU1,$(ucr get ldap/base)" Zu ersetzen ist cn=schueler-OU1 evtl. gegen cn=lehrer-OU1 bzw. cn=mitarbeiter-OU1 oder cn=admins-OU1.
  5. Die UCS@school Objekt-Rolle muss gesetzt werden: --append ucsschoolRole=student:school:OU1 evtl. weitere Rollen: --append ucsschoolRole=student:school:OU2 bzw. --append ucsschoolRole=teacher:school:OU1 --append ucsschoolRole=staff:school:OU1

Beispiel: https://github.com/univention/schulangebot/blob/master/roles/setup/tasks/create-users.yml

Das sollte es sein… Das Ergebnis per udm users/user list --filter uid=USERNAME vergleichen mit in der UMC angelegten Usern. Die Optionen (welche die Rolle festlegen) werden dabei leider nicht angezeigt. Die am Besten in der UMC vergleichen.

Wenn jemand Python programmieren kann, dann ist damit deutlich leichter zu automatisieren. Bei Interesse schreibe ich hier gerne ein paar Ansätze auf.
Alternativ gibt es jetzt die Kelvin REST API, mit der School-User zuverlässig per HTTP provisioniert werden können: https://docs.software-univention.de/ucsschool-kelvin-rest-api/
Für diese gibt es wiederum einen komfortablen Python-Client: https://kelvin-rest-api-client.readthedocs.io/en/latest/ Aber HTTP kann natürlich aus jeder Programmiersprache heraus angesprochen werden.

Geste Grüße
Daniel

Mastodon