Usernamen generieren?

Hallo,
wir nutzen für unsere User 6-stellige Benutzernamen (nur Buchstaben / Zahlen). Kann ich diese bei Import bzw. beim Anlegen eines User erzeugen lassen und dabei prüfen, dass der Name nicht bereits verwendet wird?
Vielen Dank & viele Grüße

Hallo,

ja dies geht. Es wird sogar darauf geachtet, dass der gleiche Benutzername auch in Zukunft nicht mehr wiederverwendet wird. Dies gilt auch für Email-Adressen. So wird verhindert, dass neue Benutzer Zugriff auf Daten/Emails von vorherigen Benutzern mit dem gleichen Namen erlangen.
Das ist ein zentrales Feature des UCS@school Imports: https://docs.software-univention.de/ucsschool-import-handbuch-4.4.html#configuration:scheme_formatting

Beste Grüße
Daniel Tröder

Hallo Daniel,
danke für’s schnelle Feedback. Die Doku hatte ich schon gelesen. Und wie ich aus Max ein Max1, Max2 etc… mache ist klar beschrieben.

Aber: wie erzeuge ich für neue User einen Benutzernamen im Stil “a2b4de” oder “1cdf86”, der dann auch noch unique ist?

Sorry, vielleicht sehe ich es einfach nicht…

In der Konfiguration kann ein Schema hinterlegt werden. Das Schema enthält üblicherweise Anweisungen um aus anderen (per CSV übergebenen) Attributen den Username zu erzeugen.
Damit das Schema angewendet wird, darf der Username nicht übergeben werden (darf nicht im mapping vorkommen).
Das Muster hinter a2b4de und 1cdf86 kann ich nicht erkennen. Weiß daher nicht, wie das Schema aussehen kann.

Beste Grüße
Daniel

Hi,
danke für die weiteren Hinweise zu den Schemata… das ist soweit auch klar.

Was ich suche ist in der Art: >> RandomStringUtils.randomAlphanumeric(6).toLowerCase()

Aber eben unique auf alle User und ohne dass ich etwas coden muss (der schnipsel hier ist nur ein Beispiel, dass ich gefunden habe, um die Frage zu verdeutlichen)

Tut mir Leid, das gibt es nicht.

Zwei Möglichkeiten um das Problem zu lösen:

  • Einen Python Hook schreiben, der den Benutzernamen während des Imports generiert.
  • Die CSV-Datei vorverarbeiten: den gewünschten Benutzernamen bereits übergeben.

Es muss ja eh einen eineindeutigen Schlüssel in den Quelldaten geben, der für die record_uid verwendet werden kann - also in einer CSV-Spalte übergeben wird. record_uid plus source_uid wird verwendet um in späteren Importen den User in den CSV-Daten wieder zu erkennen.
Wenn die record_uid nun in eine anderen Spalte (für den username) gehasht wird, hätte man einen eindeutigen Benutzernamen. Der wird eh nur beim Anlegen benötigt. Später wird er nicht mehr geändert und erkannt werden existierende User wie gesagt eh an record_uid plus source_uid.

Grüße
Daniel

dankeschön… dann muss ich mir was überlegen. Unser Problem ist, dass es für einen erheblichen Teil unserer User kein “Quell-System” gibt und wir daher die User IDs gerne im UCS erzeugen wollten…

Wenn es darum geht eine bestimmte Anzahl an zufälligen Zeichenketten zu generieren, kann dies auch mit einem Komandozeilen-Tool erfolgen.

Z.b. ohne Großbuchstaben 6 Zeichen 3 Stück ohne doppelte:

pwgen -A 6 3 | sort | uniq

ua4eir
xuv3ei
zieth5

Wenn dieser Befehl jedoch häufiger verwendet wird, kann es zu Namensdoppelungen kommen.

Wie kommen diese User ins System?

das sind i.d.R. Excel Listen… also nur Namen / Email, etc die wir dann über den UCS@School Importer in’s System bringen.

Wir wollen aber für’s Login auf die 6 Stelligen UIDs. Bisher haben wir eine Liste mit ID’s die wir dann manuell vergeben. Das ist aufwändig und umständlich. Daher der Wunsch, die ID’s vom UCS erzeugen zu lassen…

Eine 6 stellige UID zu generieren wird sehr schwierig. Es gibt kaum Algorithmen die so kurze Hashes erzeugen. Eine fortlaufende Nummer geht aber natürlich. Also user1, user2, user3user253… Das könnte der Import sogar automatisch mit dem Username-Schema: user[ALWAYSCOUNTER].

Dies ändert aber nichts an dem generellen Problem, dass es eine Verbindung zu den Quelldaten geben muss. Nur mit dieser können zukünftige Importe einen existierenden User einer Zeile in der CSV-Datei zuordnen. Es muss einen Wert je Zeile geben, der sich in allen Importen immer wieder unverändert vorkommt. Dies kann zB die Emailadresse sein. Namen sind nicht gut geeignet wegen Vertippen, Heiraten, Umbenennungen etc.

Grüße
Daniel

wir lösen das Thema extern - erzeugen als unique keys und verwalten diese mit Excel. Hässlich, aber geht.

Mastodon