2.6. Formatierungsschema#
Es kann wünschenswert, oder wie im Fall von Benutzername und E-Mailadresse notwendig, sein, Attribute aus den Werten anderer Attribute zu erzeugen. Zum Beispiel speichern und exportieren Schulverwaltungssoftwares häufig keine Benutzernamen und E-Mailadressen, die zur eingesetzten Infrastruktur passen.
Aus diesem Grund unterstützt die Importsoftware die Erzeugung von Attributen mit
Hilfe von konfigurierbaren Schemata. Das Format ist das gleiche wie das bei den
Benutzervorlagen in Univention Corporate Server - Handbuch für Benutzer und Administratoren [1] eingesetzte. Es existieren
dedizierte Konfigurationsschlüssel für die Attribute email
, record_uid
und username
. Darüber hinaus können Schemata für beliebige Univention Directory Manager
Attribute (mit dem Namen des Attributs als Schlüssel) hinterlegt werden.
Im folgenden Beispiel werden die E-Mail-Adresse aus Vor- und Nachname berechnet
und die email
wird als record_uid
gesetzt:
{
"scheme": {
"email": "<firstname>[0].<lastname>@<maildomain>",
"record_uid": "<email>"
}
}
Die Verwendung von selbst referenzierenden Attributen, z.B. zur Voranstellung von Ländervorwahlen ist nicht möglich. Um dies zu erreichen, sowie wenn Attribute in modifizierter Form für die Erzeugung weiterer Attribute verwendet werden sollen (z.B. nur der erste Teil eines Doppelnamens für eine E-Mailadresse), können Format-Hooks geschrieben werden. Ihre Erstellung und Verwendung wird in Format-Hooks beschrieben.
Zur Illustration wird gezeigt, wie aus den oben angeführten Schemata für
email
und record_uid
der entsprechende Wert berechnet wird, wenn
folgende Beispiel CSV-Datei als Eingabe verwendet wird:
"Schulen","Vorname","Nachname","Klassen","Telefonnumer"
"schule1","Bea","Schmidt","schule1-1A","0421-1234567890"
2020-07-09 15:28:34 INFO user_import.create_and_modify_users:141 ------ Creating / modifying users... ------
[..]
2020-07-09 15:28:34 INFO user_import.create_and_modify_users:186 Adding ImportStudent(name='B.Schmidt',
school='schule1', dn='uid=B.Schmidt,cn=schueler,cn=users,ou=schule1,dc=uni,dc=dtr', old_dn=None) (source_uid:NewDB
record_uid:b.schmidt@schule.local) attributes={'$dn$': 'uid=B.Schmidt,cn=schueler,cn=users,ou=schule1,dc=uni,dc=dtr',
'display_name': 'Bea Schmidt', ``'record_uid'``: u'b.schmidt@schule.local', 'firstname': 'Bea',
'lastname': 'Schmidt', 'type_name': 'Student', 'school': 'schule1', ``'name'``: 'B.Schmidt',
'disabled': '0', 'email': u'b.schmidt@schule.local', 'birthday': None, 'type': 'importStudent', 'schools': ['schule1'],
'password': 'xxxxxxxxxx', 'source_uid': u'NewDB', ``'school_classes'``: {'schule1': ['schule1-2B']},
'objectType': 'users/user'} ``udm_properties</property>={u@@property@@>'phone'``: [u'0421-1234567890'],
'overridePWHistory': '1', 'overridePWLength': '1'}...