Refactoring: Vereinfachung der TryGetUserId-Methode und Umstellung des Erweiterungsziels auf ClaimsPrincipal

- TryGetUserId wurde so geändert, dass es direkt die Methode expression-bodied mit int.TryParse verwendet.
- Die Erweiterungsmethoden wurden aktualisiert, sodass sie nun statt auf ControllerBase auf ClaimsPrincipal abzielen, um eine bessere Abstraktion und Wiederverwendbarkeit zu erreichen.
- Andere Methoden wurden aus Gründen der Konsistenz unverändert gelassen.
This commit is contained in:
2025-07-24 18:09:59 +02:00
parent a378862791
commit bed5fae01c
2 changed files with 10 additions and 31 deletions

View File

@@ -7,31 +7,11 @@ namespace WorkFlow.API.Controllers
[APIKeyAuth]
public static class ControllerExtensions
{
public static bool TryGetUserId(this ControllerBase controller, out int? id)
public static bool TryGetUserId(this ClaimsPrincipal user, out int id) => int.TryParse(user.FindFirstValue(ClaimTypes.NameIdentifier), out id);
public static bool TryGetUsername(this ClaimsPrincipal user, out string username)
{
var value = controller.User.FindFirstValue(ClaimTypes.NameIdentifier);
if (value is null)
{
id = default;
return false;
}
if(int.TryParse(value, out int id_int))
{
id = id_int;
return true;
}
else
{
id = null;
return false;
}
}
public static bool TryGetUsername(this ControllerBase controller, out string username)
{
var value = controller.User.FindFirstValue(ClaimTypes.Name);
var value = user.FindFirstValue(ClaimTypes.Name);
if (value is null)
{
@@ -45,9 +25,9 @@ namespace WorkFlow.API.Controllers
}
}
public static bool TryGetName(this ControllerBase controller, out string name)
public static bool TryGetName(this ClaimsPrincipal user, out string name)
{
var value = controller.User.FindFirstValue(ClaimTypes.Surname);
var value = user.FindFirstValue(ClaimTypes.Surname);
if (value is null)
{
@@ -61,9 +41,9 @@ namespace WorkFlow.API.Controllers
}
}
public static bool TryGetPrename(this ControllerBase controller, out string prename)
public static bool TryGetPrename(this ClaimsPrincipal user, out string prename)
{
var value = controller.User.FindFirstValue(ClaimTypes.GivenName);
var value = user.FindFirstValue(ClaimTypes.GivenName);
if (value is null)
{
@@ -77,9 +57,9 @@ namespace WorkFlow.API.Controllers
}
}
public static bool TryGetEmail(this ControllerBase controller, out string email)
public static bool TryGetEmail(this ClaimsPrincipal user, out string email)
{
var value = controller.User.FindFirstValue(ClaimTypes.Email);
var value = user.FindFirstValue(ClaimTypes.Email);
if (value is null)
{

View File

@@ -1,7 +1,6 @@
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using WorkFlow.API.Attributes;
using WorkFlow.Application.Profiles;