Added Locations update CRUD element, fixed locations index missing cn attribute

This commit is contained in:
2025-10-03 22:13:39 +02:00
parent 7eff665f81
commit 4d0d3ac473
5 changed files with 107 additions and 5 deletions

View File

@@ -46,7 +46,7 @@ public partial class LdapService : IDisposable
public string GroupsBaseDn => string.IsNullOrEmpty(_opts.GroupsOu) ? _opts.BaseDn : $"{_opts.GroupsOu},{_opts.BaseDn}";
public string MigrationsBaseDn => string.IsNullOrEmpty(_opts.MigrationsOu) ? _opts.BaseDn : $"{_opts.MigrationsOu},{_opts.BaseDn}";
public string[] UsersAttributes => ["cn", "sn", "title", "uid", "jpegPhoto", "userPassword", "description"];
public string[] LocationsAttributes => ["l", "street", "description"];
public string[] LocationsAttributes => ["cn", "l", "street", "description"];
public string[] GroupsAttributes => ["cn", "gidNumber", "description"];
public async Task<IEnumerable<Dictionary<string, string>>> ListLocationsAsync()
{
@@ -139,6 +139,14 @@ public partial class LdapService : IDisposable
return new GroupModel((await ListObjectBy(GroupsBaseDn, $"cn={cn}", attributes)).First()) { Cn = cn };
}
public async Task<LocationModel> GetLocationByCnAsync(string cn)
{
return await GetLocationByCnAsync(cn, LocationsAttributes);
}
public async Task<LocationModel> GetLocationByCnAsync(string cn, string[] attributes)
{
return new LocationModel((await ListObjectBy(LocationsBaseDn, $"cn={cn}", attributes)).First()) { Cn = cn };
}
public async Task<IEnumerable<Dictionary<string, string>>> ListDeviceAsync()
{
@@ -285,6 +293,11 @@ public partial class LdapService : IDisposable
await UpdateObject(GroupsBaseDn, "cn", cn, attributeName, attributeValue);
}
public async Task UpdateLocation(string cn, string attributeName, string attributeValue)
{
await UpdateObject(LocationsBaseDn, "cn", cn, attributeName, attributeValue);
}
public async Task UpdateObject(string baseDn, string rdnKey, string rdnValue, string attributeName, string attributeValue)
{
await ConnectAndBind();