Wie führe ich einen schulübergreifenden CLI-Import von Lehrkräften aus einer Datei durch, wenn der SiSoPI-Import konfiguriert ist?
Zusatzanforderungen:
- die Lehrkräfte sollen ein eingestelltes Kontoablaufdatum erhalten
- pro Lehrkraft soll definiert werden, ob sie für OX freigeschaltet ist oder nicht
- die Benutzer sollen später NICHT durch den SiSoPI-Import gepflegt werden können (→ andere
source_uid)
Voraussetzung:
- Die entsprechenden SchulOUs müssen schon vorhanden sein.
- Wir haben eine CSV-Datei
importfile.csvmit folgendem Aufbau:
Personalnummer,Nachname,Vorname,Dienststellennummer,isOxUser,userexpiry
las00001,Muster,Max,070001,OK,2021-12-29
las00002,Muster,Max,070041,OK,2023-03-30
las00003,Muster,Max,050040,Not,2024-02-28
las00004,Muster,Max,200600,OK,2022-08-30
las00005,Muster,Max,080023,Not,2021-12-29
las00006,Muster,Max,120051,Not,2021-12-29
…
Anmerkung:
- Personalnummer: UDM-Attribut
record_uid - Dienststellennummer: UDM-Attribut
school isOxUser: UDM-Attribut welches definiert, ob das Benutzerkonto ein Postfach erhält und dieses über den OX-Connector provisioniert wird (gültige Werte:OKundNot)userexpiry: UDM-Attribut für das Kontoablaufdatum (Angabe als ISO-Datum:2021-12-29)
Importkonfiguration anlegen:
Der zu Grunde liegende Importablauf wird hier beschrieben.
- Wir erstellen uns eine neue Importkonfiguration
teacher.jsonund legen diese z.B. unter/var/lib/ucs-school-import/configs/ab.
{
"classes": {
"user_importer": "ucsschool.importer.mass_import.user_import.UserImport"
},
"configuration_checks": [ "defaults" ],
"source_uid": "las",
"csv": {
"mapping": {
"Personalnummer": "record_uid",
"Nachname": "lastname",
"Vorname": "firstname",
"Dienststellennummer": "school",
"isOxUser": "isOxUser",
"userexpiry": "userexpiry"
}
}
}
classes:user_importer: Hier definieren wir, welche UCS@school-Importmechanismen gelten sollen. Der Importvorgang liest mehrere Konfigurationsdateien ein. Und in einer der standardmäßig eingelesenen Dateien wird der SiSoPI-Import aktiviert (siehe auch 4. Szenario: Eine Quelle, partielle Importe — UCS@school - Handbuch für den grafischen Benutzer-Import). Das wird an dieser Stelle wieder rückgängig gemacht.configuration_checks: Hier wird definiert, welche zusätzlichen Importchecks verwendet werden (hier werden die SiSoPI-Checks explizit herausgenommen, da es oben gerade deaktiviert wurde)source_uid: Hier vergeben wir einen anderen, festen Wert für die Quelldatenbank, damit eine andere UID als für die SiSoPI-Imports verwendet wird (siehe Anforderungen).csv:mapping: Hier wird der Spaltenaufbau der Importdatei und den entsprechenden UDM-Attributen zugeordnet
Importvorgang:
Wir benötigen das Pythonscript ucs-school-user-import und setzen alle benötigen Parameter:
/usr/share/ucs-school-import/scripts/ucs-school-user-import \
-c /var/lib/ucs-school-import/configs/teacher.json \
-i /tmp/importfile.csv \
-u teacher \
--verbose \
--logfile /root/teacher-import.log
Anmerkung:
- der Parameter
-cgibt an, welche Importkonfiguration zusätzlich zu den Standardkonfigurationsdateien geladen werden soll - der Parameter
-idefiniert, welche Importdatei wir verwenden wollen - der Parameter
-udefiniert, dass wir die UCS@school-Rolleteacherimportieren wollen - der Parameter
--verboseliefert Debugging-Informationen nachstdout - der Parameter
-logfileerzeugt ein separates Logfile des Vorgangs
Die zugehörigen Passwörter der soeben erzeugten Benutzerkonten werden als CSV-Datei in /var/lib/ucs-school-import/passwords/YEAR/MONTH/ abgelegt.