Problem: UDM properties userexpiry must be set as attributes of the ImportStudent object

Problem

  • Während des Benutzerimports über das UDM bricht der Importjob ab.
    incl… Fehlermeldung:
    UDM-Eigenschaften userexpiry müssen als Attribute des ImportStudent-Objekts gesetzt werden (nicht in udm_properties)

  • Der Testlauf verläuft normal

Dies ist auf einen bekannten Bug zurückzuführen

Environment

UCS-School 4.4-8

Lösung

Ersetzen Sie userexpiry mit expiration_date: Ihrer user_import.json:

{
 "csv": {
 "mapping": { "userexpiry": "expiration_date"
 }
 }
 }

und passen Ihre csv wie folgt an.

person_number,last_name,first_name,isOxUser,expiration_date

Jetzt kann es vorkommen das die vorherigen User auch dieses Datum erhalten sollen. Folgender Vorschlag dazu:

univention-ldapsearch "(&(!(krb5ValidEnd=*))(objectClass=ucsschoolStudent))" 1.1 |grep dn: |sed 's/dn: //'|while read dn; do udm users/user modify --dn "$dn" --set userexpiry='2030-01-01'; done

Wichtig ist eine objectClass für alle bzw. nur die betroffenen Schüler haben.

Man kann das Script um ein echo ergänzen um das Ergebnis zu prüfen.

univention-ldapsearch "(&(!(krb5ValidEnd=*))(objectClass=ucsschoolStudent))" 1.1 |grep dn: |sed 's/dn: //'|while read dn; do echo udm users/user modify --dn $dn --set userexpiry='2025-01-01'; done

Problem

  • During the user import via the UDM, the import job aborts.
    incl… Error message:
    UDM properties userexpiry must be set as attributes of ImportStudent object (not in udm_properties).

  • The test run runs normally

This is due to a known bug

Environment

UCS-School 4.4-8

Solution

Replace userexpiry with expiration_date: of your user_import.json:

 {
 "csv": {
 "mapping": { "userexpiry": "expiration_date"
 }
 }
 }

and modify your csv as follows.

person_number,last_name,first_name,isOxUser,expiration_date

Now it can happen that the previous users should also receive this date. Maybe consinder this suggestion:

univention-ldapsearch "(&(!(krb5ValidEnd=*))(objectClass=ucsschoolStudent))" 1.1 |grep dn: |sed 's/dn: //'|while read dn; do udm users/user modify --dn "$dn" --set userexpiry='2030-01-01'; done

It is important to have an objectClass for all or only the affected students.

You can add an echo to the script to check the result.

univention-ldapsearch "(&(!(krb5ValidEnd=*))(objectClass=ucsschoolStudent))" 1.1 |grep dn: |sed 's/dn: //'|while read dn; do echo udm users/user modify --dn $dn --set userexpiry='2025-01-01'; done

:warning:

Selbstverständlich ist die Massenbearbeitung auch über die Benutzeranzeige im UDM möglich.
Of course mass editing is also possible via the user display in the UDM.
Mastodon