Problem:
Der Import gibt folgende Fehlermeldung zurück:
2024-08-26 12:13:04 ERROR user_import.create_and_modify_users:278 Entry #0: Username 'chri.schei' is already in use by 'uid=chri.schei,cn=lehrer,cn=users,ou=sun,dc=schein,dc=me' (source_uid: 'csv-teacher', record_uid: 'christinascheinig01234').
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ucsschool/importer/mass_import/user_import.py", line 197, in create_and_modify_users
check_username=True,
File "/usr/lib/python3/dist-packages/ucsschool/importer/models/import_user.py", line 1357, in validate
self._check_username_uniqueness()
File "/usr/lib/python3/dist-packages/ucsschool/importer/models/import_user.py", line 1369, in _check_username_uniqueness
self.name, uut.dn, uut.source_uid, uut.record_uid
ucsschool.importer.exceptions.UniqueIdError: Username 'chri.schei' is already in use by 'uid=chri.schei,cn=lehrer,cn=users,ou=sun,dc=schein,dc=me' (source_uid: 'cs
v-teacher', record_uid: 'christinascheinig01234').
Investigation:
Einen Benutzer darf es nur einmal geben, er darf aber an mehreren Schule sein. Damit er an eine weitere Schule importiert wird, muss dieser die Rollen
ucsschoolRole
und ucsschoolSchool
von seiner Stammschule haben und die RecordUid
muss übereinstimmen
Step1: Attribute am Benutzer prüfen
univention-ldapsearch -LLL uid=chri.schei ucsschoolSchool ucsschoolRole ucsschoolRecordUID
dn: uid=chri.schei,cn=lehrer,cn=users,ou=sun,dc=schein,dc=me
ucsschoolSchool: sun
ucsschoolRole: teacher:school:sun
ucsschoolRecordUID: christinascheinig43210
Step2: Eintrag in der Counterliste prüfen
Sollte die RecordUid passen und auch die Attribute richtig gesetzt sein, dann müsste ein neuer Benutzer angelegt werden mit einer Nummer, insofern in der import Config sowas zu finden ist:
'username': {'default': '<firstname:umlauts,lower>[0:5].<lastname:umlauts,lower>[0:5][COUNTER2]'}}'
Ist das auch gegeben muss geschaut werden, ob der Benutzer einen Eintag hat. Dieser Eintrag wird beim ersten Import erzeugt. Ist der Eintrag nicht vorhanden, ist der Benutzer ggf manuell angelegt worden.
univention-ldapsearch -LLL -b cn=unique-usernames,cn=ucsschool,cn=univention,"$(ucr get ldap/base)" cn=chri.schei
Solution:
Legen Sie ein Counter Objekt an und importieren das ins ldap:
cat > unique.ldif
dn: cn=chri.schei,cn=unique-usernames,cn=ucsschool,cn=univention,dc=schein,dc=me
objectClass: ucsschoolUsername
ucsschoolUsernameNextNumber: 2
cn: chri.schei
^C
ldapadd -x -D "cn=admin,$(ucr get ldap/base)" -w "$(</etc/ldap.secret)" < unique.ldif
See also for counter issues: