feat(Verzeichnis): Client-Methode erstellt und Endpunkte angeordnet

This commit is contained in:
tekh 2025-07-29 09:59:52 +02:00
parent 3d8076e3b6
commit 098c2e1c47
3 changed files with 16 additions and 10 deletions

View File

@ -7,9 +7,10 @@ import { UrlService } from './url.service';
@Injectable({
providedIn: 'root'
})
// TODO: Consolidate all directory services and remove unnecessary methods.
export class DirService {
private baseUrl: string
constructor(private http: HttpClient, urlService : UrlService) {
constructor(private http: HttpClient, urlService: UrlService) {
this.http = http;
this.baseUrl = urlService.apiRoute.directory;
}
@ -22,4 +23,8 @@ export class DirService {
return this.http.get<DirUser[]>(this.baseUrl, { params, withCredentials: true });
}
createSearchRoot(username: string, password: string): Observable<Object> {
return this.http.post(this.baseUrl, { username: username, password: password }, { withCredentials: true })
}
}

View File

@ -82,16 +82,16 @@ public class DirectoryController : ControllerBase
}
}
[HttpPost("CreateSearchRoot")]
[HttpPost]
public async Task<IActionResult> CreateSearchRoot([FromBody] SearchRootCreateDto searchRootCreateDto)
{
try
{
var dirEntryUsername = searchRootCreateDto.DirEntryUsername ?? CurrentUser;
var dirEntryUsername = searchRootCreateDto.Username ?? CurrentUser;
if (dirEntryUsername is null)
return Unauthorized();
bool isValid = _dirSearchService.ValidateCredentials(dirEntryUsername, searchRootCreateDto.DirEntryPassword);
bool isValid = _dirSearchService.ValidateCredentials(dirEntryUsername, searchRootCreateDto.Password);
if (!isValid)
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFound]));
@ -100,7 +100,7 @@ public class DirectoryController : ControllerBase
if (!userResult.IsSuccess || userResult.Data is null)
return Unauthorized(Result.Fail().Message(_localizer[Key.UserNotFoundInLocalDB]));
_dirSearchService.SetSearchRootCache(userResult.Data.Username, searchRootCreateDto.DirEntryPassword);
_dirSearchService.SetSearchRootCache(userResult.Data.Username, searchRootCreateDto.Password);
return Ok();
}
catch (Exception ex)
@ -162,11 +162,12 @@ public class DirectoryController : ControllerBase
}
[HttpGet("Group")]
public IActionResult GetGroups(string? dirEntryUsername, params string[] propName)
[Authorize]
public IActionResult GetGroups(params string[] propName)
{
try
{
dirEntryUsername ??= CurrentUser;
string dirEntryUsername = CurrentUser!;
if (dirEntryUsername is null)
return Unauthorized();
@ -190,12 +191,12 @@ public class DirectoryController : ControllerBase
}
[HttpGet("User")]
public IActionResult GetUsersByGroupName(string? dirEntryUsername, [FromQuery] string? groupName = null)
public IActionResult GetUsersByGroupName([FromQuery] string? groupName = null)
{
try
{
string[] propName = { "memberof", "samaccountname", "givenname", "sn", "mail" };
dirEntryUsername ??= CurrentUser;
string dirEntryUsername = CurrentUser!;
if (dirEntryUsername is null)
return Unauthorized();

View File

@ -1,4 +1,4 @@
namespace DigitalData.UserManager.Application.DTOs
{
public record SearchRootCreateDto(string? DirEntryUsername, string DirEntryPassword);
public record SearchRootCreateDto(string? Username, string Password);
}