2.7. Einmalige Benutzernamen und E-Mailadressen#
Benutzernamen und E-Mailadressen müssen in der gesamten Domäne, nicht nur an einer Schule, einmalig sein. Darüber hinaus kann es die Anforderung geben, dass Benutzernamen und E-Mailadressen auch historisch einmalig sind, also auch dann nicht wiederverwendet werden, wenn die vorherigen Konten bereits lange gelöscht sind.
Aus diesem Grund können zur Erzeugung von Benutzernamen und E-Mailadressen, über die üblichen Variablen in Formatierungsschema (siehe Formatierungsschema) hinaus, spezielle Zählervariablen verwendet werden. Diese Variablen werden bei ihrer Verwendung automatisch hochgezählt. Ihr Wert wird pro Benutzername bzw. E-Mailadresse gespeichert. Es existieren zwei Variablen, die sich darin unterscheiden, wie die ersten Benutzer mit gleichem Benutzernamen bzw. E-Mailadresse, benannt werden:
[ALWAYSCOUNTER][ALWAYSCOUNTER]ist ein Zähler, der bei seiner ersten Verwendung eine1einsetzt.Benutzernamen für
antonwären:anton1,anton2,anton3…Analog für
anton@dom.ain:anton1@dom.ain,anton2@dom.ain,anton3@dom.ain…[COUNTER2][COUNTER2]ist ein Zähler, der bei seiner ersten Verwendung keine Zahl einsetzt, erst bei seiner zweiten.Benutzernamen für
antonwären:anton,anton2,anton3…Analog für
anton@dom.ain:anton@dom.ain,anton2@dom.ain,anton3@dom.ain…
Im folgenden Beispiel würden für Bea Schmidt die Benutzernamen
b.schmidt, b.schmidt2, b.schmidt3 sowie E-Mailadressen
bea.schmidt1@dom.ain, bea.schmidt2@dom.ain, bea.schmidt3@dom.ain
erzeugt werden:
{
"scheme": {
"username": {
"default": "<:umlauts><firstname>[0].<lastname><:lower>[COUNTER2]"
},
"email": "<firstname>.<lastname>[ALWAYSCOUNTER]@<maildomain>"
},
"maildomain": "dom.ain",
}
Die [0] im Beispiel bedeutet, dass nur das erste Zeichen des davor stehenden
Attributes genommen wird. Es ist auch möglich Bereiche anzugeben. Weitere
Informationen dazu finden sich in Benutzervorlagen in
Univention Corporate Server - Handbuch für Benutzer und Administratoren [1].
Um Zählervariablen nach Tests auf 0 zurück zu setzen, kann das Skript
/usr/share/ucs-school-import/scripts/reset_schema_counter verwendet
werden. Mit Hilfe eines Filters kann beschränkt werden, welche Zähler gelöscht
werden sollen. In einem Testlauf kann dies überprüft werden. Mit der Option
--help werden die Aufrufparameter angezeigt. Standardmäßig werden die Zähler
für Benutzernamen zurück gesetzt. Um Zähler für E-Mailadressen zu löschen, muss
--email verwendet werden.
Warnung
Um einen aussagekräftigen Benutzernamen zu gewährleisten, geht die Logik von maximal drei Zeichen für die Zählervariablen aus, wenn ein Benutzername unter Berücksichtigung der maximalen Länge generiert wird. Dies bedeutet, dass davon ausgegangen wird, dass der Zähler maximal bis 999 zählen muss.
Technisch wird es allerdings nicht verhindert, dass der Zähler über 999 hinausgeht und somit vierstellig wird. Sollte dieser Fall eintreten, werden Benutzernamen generiert, die ein Zeichen länger als das konfigurierte Maximum sein können.
Wird in der Umgebung keine Unterstützung für Samba, Samba 4 Connector und Active Directory Connector benötigt, hat dies keine negativen Auswirkungen.
Muss allerdings eine maximale Länge für Benutzernamen eingehalten werden, so wird empfohlen ein alternatives Schema zu entwickeln, welches weniger doppelte Benutzernamen erzeugt.
2.7.1. Programmierung neuer Zählervariablen#
Um neue Zählervariablen hinzuzufügen, muss von der Klasse
ucsschool.importer.utils.username_handler.UsernameHandler abgeleitet
und die Methode
counter_variable_to_function()
überschrieben werden (siehe Subclassing).
Um diese neuen Zählervariablen auch für E-Mailadressen zu verwenden, muss
ucsschool.importer.utils.username_handler.EmailHandler von der
neuen, abgeleiteten
UsernameHandler Klasse
sowie von EmailHandler
abgeleitet werden. Um Zählervariablen nur für E-Mailadressen hinzuzufügen,
muss nur von der Klasse
EmailHandler abgeleitet,
und oben beschriebene Methoden überschrieben werden.