Files
YABA/API/YABA.API/Extensions/ControllerExtensions.cs
Carl Tibule 9bbd12e4c3
All checks were successful
ci/woodpecker/tag/api_build Pipeline was successful
ci/woodpecker/tag/api_uploadimage Pipeline was successful
ci/woodpecker/tag/web_uploadimage Pipeline was successful
Created Woodpecker CI/CD deployment
- Created Dockerfile for packing up API and Web projects as Docker image
2024-04-05 23:36:49 -05:00

29 lines
966 B
C#

using Microsoft.AspNetCore.Mvc;
using YABA.Common.Extensions;
using YABA.Common.Lookups;
namespace YABA.API.Extensions
{
public static class ControllerExtensions
{
public static string GetAuthProviderId(this ControllerBase controller)
{
return controller.User.Identity.GetCustomClaim(ClaimsLookup.AuthProviderId);
}
public static int GetUserId(this ControllerBase controller)
{
var isValidUserId = int.TryParse(controller.User.Identity.GetCustomClaim(ClaimsLookup.UserId), out int userId);
return isValidUserId ? userId : 0;
}
public static string GetIpAddress(this ControllerBase controller)
{
if (controller.Request.Headers.ContainsKey("X-Forwarded-For"))
return controller.Request.Headers["X-Forwarded-For"];
return controller.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
}
}
}