From 8641e11ad3633c7750716a9f21f5674760f798c5 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Mon, 24 Nov 2025 13:03:55 +0100 Subject: [PATCH] Fixed missing required fields and other issues in users view --- src/Controllers/UsersController.cs | 6 +++--- src/Views/Home/Users.cshtml | 21 +++++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/Controllers/UsersController.cs b/src/Controllers/UsersController.cs index 76b5378..3dd1dbc 100644 --- a/src/Controllers/UsersController.cs +++ b/src/Controllers/UsersController.cs @@ -76,7 +76,6 @@ public class UsersController : Controller UserDescription? description = requestModel.Description; jpegPhoto ??= ImageHelper.GetDefaultUserImageAsBase64(); string uid = UsersHelper.CreateUsername(requestModel.Cn ?? "", requestModel.Sn ?? ""); - title ??= ""; description ??= new() {Address = new(), BirthDate = "", Workplace = "", Groups = []}; if (!userPassword.StartsWith('{')) { @@ -88,12 +87,13 @@ public class UsersController : Controller new LdapAttribute("objectClass", "inetOrgPerson"), new LdapAttribute("cn", requestModel.Cn), new LdapAttribute("sn", requestModel.Sn), - new LdapAttribute("title", title), new LdapAttribute("uid", uid), new LdapAttribute("jpegPhoto", jpegPhoto), new LdapAttribute("description", JsonSerializer.Serialize(description)), new LdapAttribute("userPassword", userPassword), ]; + if (title is not null && title.Length > 0) attributeSet.Add(new LdapAttribute("title", title)); + await _ldap.CreateUser(uid, attributeSet); return new(){Success = true, Uid = uid}; } @@ -122,7 +122,7 @@ public class UsersController : Controller await _ldap.UpdateUser(uid, "uid", requestModel.NewUid); uid = requestModel.NewUid; } - if (requestModel.Title is not null) + if (requestModel.Title is not null && requestModel.Title.Length > 0) { await _ldap.UpdateUser(uid, "title", requestModel.Title); } diff --git a/src/Views/Home/Users.cshtml b/src/Views/Home/Users.cshtml index 5feb539..96f594c 100644 --- a/src/Views/Home/Users.cshtml +++ b/src/Views/Home/Users.cshtml @@ -197,7 +197,7 @@
- +

@T["Workplace & account"]

@@ -213,7 +213,7 @@
- +
@@ -278,6 +278,9 @@ var dataFromEntries = Object.fromEntries(new FormData(updateForm).entries()); var data = unflatten(dataFromEntries); data.Description.Groups = Array.from(updateForm.querySelector('#updateGroups').selectedOptions).map(option => option.value); + if (data.Description.Address.StreetNr == "") { + delete(data.Description.Address.StreetNr); + } try { const response = await fetch('/Users/Update', { method: 'POST', @@ -435,11 +438,11 @@
- +
- +
@@ -455,7 +458,7 @@
- +

@T["Workplace & account"]

@@ -471,7 +474,7 @@
- +
@@ -539,7 +542,9 @@ const dataFromEntries = Object.fromEntries(new FormData(createForm).entries()); const data = unflatten(dataFromEntries); data.Description.Groups = Array.from(createGroupsSelect.selectedOptions).map(o => o.value); - + if (data.Description.Address.StreetNr == "") { + delete(data.Description.Address.StreetNr); + } try { const response = await fetch('/Users/Create', { method: 'POST', @@ -572,7 +577,7 @@ data-user-birthdate="${data.Description.BirthDate}" data-user-address-city="${data.Description.Address.City}" data-user-address-street="${data.Description.Address.Street}" - data-user-address-streetnr="${data.Description.Address.StreetNr}" + data-user-address-streetnr="${data.Description.Address.StreetNr || ""}" data-user-workplace="${data.Description?.Workplace || ''}" data-user-groups='${JSON.stringify(data.Description?.Groups || [])}' data-bs-toggle="modal"