Fixed new user username formating

This commit is contained in:
2026-10-21 10:16:54 +02:00
parent 5d7e2f74ce
commit 95a86e1a87
6 changed files with 63 additions and 14 deletions
@@ -1382,10 +1382,22 @@ export const createUser = async (
): Promise<void> => {
const encodedTenant = encodeEntityId(tenantId) || String(tenantId);
const encodedIdNumber = encodeIdNumberHex(idNumber);
// Normalize and sanitize userName: Duende / Skoruba Identity Server rejects usernames with spaces
const rawEmail = payload.email?.trim().toLowerCase() || '';
const rawUserName = payload.userName?.trim();
let sanitizedUserName = rawUserName
? rawUserName.toLowerCase().replace(/\s+/g, '.').replace(/[^a-z0-9_.\-@+]/g, '')
: rawEmail.split('@')[0];
if (!sanitizedUserName) {
sanitizedUserName = rawEmail;
}
await apiClient.post(`/v1/api/users/${encodeURIComponent(encodedTenant)}/${encodeURIComponent(encodedIdNumber)}`, {
id: payload.id || null,
userName: payload.userName || null,
email: payload.email || null,
userName: sanitizedUserName,
email: rawEmail || null,
emailConfirmed: payload.emailConfirmed ?? true,
phoneNumber: payload.phoneNumber || null,
phoneNumberConfirmed: payload.phoneNumberConfirmed ?? false,