Fixed new user username formating
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user