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:
@@ -7,31 +7,11 @@ namespace WorkFlow.API.Controllers
|
|||||||
[APIKeyAuth]
|
[APIKeyAuth]
|
||||||
public static class ControllerExtensions
|
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);
|
var value = user.FindFirstValue(ClaimTypes.Name);
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (value is null)
|
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)
|
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)
|
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)
|
if (value is null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using MediatR;
|
using MediatR;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using WorkFlow.API.Attributes;
|
using WorkFlow.API.Attributes;
|
||||||
using WorkFlow.Application.Profiles;
|
using WorkFlow.Application.Profiles;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user