Perform an USC@school teacher import to multiple schools if SiSoPI import is configured

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.csv mit 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: OK und Not)
  • userexpiry: UDM-Attribut für das Kontoablaufdatum (Angabe als ISO-Datum: 2021-12-29)

Importkonfiguration anlegen:

Der zu Grunde liegende Importablauf wird hier beschrieben.

  1. Wir erstellen uns eine neue Importkonfiguration teacher.json und 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 -c gibt an, welche Importkonfiguration zusätzlich zu den Standardkonfigurationsdateien geladen werden soll
  • der Parameter -i definiert, welche Importdatei wir verwenden wollen
  • der Parameter -u definiert, dass wir die UCS@school-Rolle teacher importieren wollen
  • der Parameter --verbose liefert Debugging-Informationen nach stdout
  • der Parameter -logfile erzeugt 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.

This topic was automatically closed after 60 minutes. New replies are no longer allowed.