mirror of
https://github.com/LD-Reborn/Berufsschule_HAM.git
synced 2025-12-20 06:51:55 +00:00
Implemented user creation in frontend
This commit is contained in:
@@ -60,15 +60,19 @@ public class UsersController : Controller
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("Create")]
|
||||
public async Task<bool> Create(string cn, string sn, string? title, string? uid, string userPassword, string? description, string jpegPhoto)
|
||||
[HttpPost("Create")]
|
||||
public async Task<UsersCreateResponseModel> Create([FromBody] UsersCreateRequestModel requestModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
string? jpegPhoto = requestModel.JpegPhoto;
|
||||
string? title = requestModel.Title;
|
||||
string userPassword = requestModel.UserPassword ?? "";
|
||||
UserDescription? description = requestModel.Description;
|
||||
jpegPhoto ??= Convert.ToBase64String(System.IO.File.ReadAllBytes("wwwroot/user_default.jpeg")); // TODO: cleanup - make this a config setting
|
||||
uid ??= UsersHelper.CreateUsername(cn, sn);
|
||||
string uid = UsersHelper.CreateUsername(requestModel.Cn ?? "", requestModel.Sn ?? "");
|
||||
title ??= "";
|
||||
description ??= "{}";
|
||||
description ??= new() {Address = new(), BirthDate = "", Workplace = "", Groups = []};
|
||||
if (!userPassword.StartsWith('{'))
|
||||
{
|
||||
byte[] passwordBytes = Encoding.UTF8.GetBytes(userPassword);
|
||||
@@ -79,26 +83,26 @@ public class UsersController : Controller
|
||||
LdapAttributeSet attributeSet =
|
||||
[
|
||||
new LdapAttribute("objectClass", "inetOrgPerson"),
|
||||
new LdapAttribute("cn", cn),
|
||||
new LdapAttribute("sn", sn),
|
||||
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", description),
|
||||
new LdapAttribute("description", JsonSerializer.Serialize(description)),
|
||||
new LdapAttribute("userPassword", userPassword),
|
||||
];
|
||||
await _ldap.CreateUser(uid, attributeSet);
|
||||
return true;
|
||||
return new(){Success = true, Uid = uid};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError("Unable to create user: {ex.Message} - {ex.StackTrace}", [ex.Message, ex.StackTrace]);
|
||||
return false;
|
||||
return new() {Success = false, Exception = ex.Message};
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost("Update")]
|
||||
public async Task<UsersUpdateRequestModel> Update([FromBody] UsersModifyRequestModel requestModel)
|
||||
public async Task<UsersUpdateResponseModel> Update([FromBody] UsersModifyRequestModel requestModel)
|
||||
{
|
||||
if (requestModel is null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user