Implemented group creation button

This commit is contained in:
2025-10-11 15:32:05 +02:00
parent dfe1a2b2b1
commit 4dc0f00e5b
4 changed files with 196 additions and 41 deletions

View File

@@ -61,12 +61,20 @@ public class GroupsController : Controller
});
}
[HttpGet("Create")]
public async Task<bool> Create(string cn, string gidNumber, GroupPermission[] permissions, string description)
{
[HttpPost("Create")]
public async Task<GroupsCreateResponseModel> Create([FromBody]GroupsCreateRequestModel model)
{
if (model is null)
{
return new GroupsCreateResponseModel(
successful: false,
exception: "Unable to create a group because the GroupsCreateRequestModel is null.");
}
try
{
description ??= JsonSerializer.Serialize(new GroupPermissions() {Permissions = []});
List<GroupPermission> permissions = model.Permissions;
string gidNumber = "0"; // TODO implement counter
string cn = model.Cn;
LdapAttributeSet attributeSet =
[
@@ -76,19 +84,16 @@ public class GroupsController : Controller
new LdapAttribute("gidNumber", gidNumber),
new LdapAttribute(
"description",
JsonSerializer.Serialize(new GroupPermissions()
{
Permissions = [.. permissions]
}))
JsonSerializer.Serialize(new GroupPermissions(){Permissions = permissions}))
];
await _ldap.CreateGroup(cn, attributeSet);
return true;
return new(true);
}
catch (Exception ex)
{
_logger.LogError("Unable to create user: {ex.Message} - {ex.StackTrace}", [ex.Message, ex.StackTrace]);
return false;
_logger.LogError("Unable to create group: {ex.Message} - {ex.StackTrace}", [ex.Message, ex.StackTrace]);
return new(false, ex.Message);
}
}