Merge pull request #54 from LD-Reborn/11-feature-crud---locations-delete

11 feature crud   locations delete
This commit is contained in:
LD50
2025-10-03 21:31:10 +02:00
committed by GitHub
2 changed files with 28 additions and 2 deletions

View File

@@ -16,4 +16,22 @@ public class LocationsController : Controller
return list; return list;
} }
[HttpGet("Delete")]
public async Task<bool> Delete(string cn)
{
if (cn is null) { return false; }
return await Task.Run(() =>
{
try
{
_ldap.DeleteLocation(cn);
return true;
}
catch (Exception)
{
return false;
}
});
}
} }

View File

@@ -45,15 +45,17 @@ public partial class LdapService : IDisposable
public string UsersBaseDn => string.IsNullOrEmpty(_opts.UsersOu) ? _opts.BaseDn : $"{_opts.UsersOu},{_opts.BaseDn}"; public string UsersBaseDn => string.IsNullOrEmpty(_opts.UsersOu) ? _opts.BaseDn : $"{_opts.UsersOu},{_opts.BaseDn}";
public string GroupsBaseDn => string.IsNullOrEmpty(_opts.GroupsOu) ? _opts.BaseDn : $"{_opts.GroupsOu},{_opts.BaseDn}"; 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 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[] GroupsAttributes => ["cn", "gidNumber", "description"]; public string[] GroupsAttributes => ["cn", "gidNumber", "description"];
public async Task<IEnumerable<Dictionary<string, string>>> ListLocationsAsync() public async Task<IEnumerable<Dictionary<string, string>>> ListLocationsAsync()
{ {
return await ListObjectBy(LocationsBaseDn, "(ou=locations)", ["l", "street", "description"]); return await ListObjectBy(LocationsBaseDn, "", LocationsAttributes);
} }
public async Task<IEnumerable<Dictionary<string, string>>> ListUsersAsync() public async Task<IEnumerable<Dictionary<string, string>>> ListUsersAsync()
{ {
return await ListObjectBy(UsersBaseDn, "", ["cn", "sn", "title", "uid", "jpegPhoto", "userPassword", "description"]); return await ListObjectBy(UsersBaseDn, "", UsersAttributes);
} }
public async Task<MigrationModel> GetMigrationVersionAsync() public async Task<MigrationModel> GetMigrationVersionAsync()
@@ -261,6 +263,12 @@ public partial class LdapService : IDisposable
DeleteObjectByDn(dn); DeleteObjectByDn(dn);
} }
public void DeleteLocation(string cn)
{
string dn = PrependRDN($"cn={cn}", LocationsBaseDn);
DeleteObjectByDn(dn);
}
public async Task UpdateUser(string uid, string attributeName, string attributeValue) public async Task UpdateUser(string uid, string attributeName, string attributeValue)
{ {
await UpdateObject(UsersBaseDn, "uid", uid, attributeName, attributeValue); await UpdateObject(UsersBaseDn, "uid", uid, attributeName, attributeValue);