Loading src/api/Authorization/CurrentUserSource.cs +2 −14 Original line number Diff line number Diff line using System.Security.Claims; using Cals.Authentication; using Cals.Visor.Application.Identity; using Cals.Visor.Identity; namespace Cals.Visor.Api.Authorization; Loading @@ -13,16 +12,5 @@ public class CurrentUserSource : ICurrentUser _httpContext = httpContext.HttpContext ?? throw new ArgumentNullException(nameof(httpContext)); } public IApplicationUser? CurrentUser() { if (_httpContext.User == null) return null; ClaimsPrincipal user = _httpContext.User; if (user == null || user.Identity == null) return null; if (!user.Identity.IsAuthenticated) return null; return new ClaimsApplicationUser(user); } public IVisorUser? CurrentUser => new VisorUser(_httpContext.User); } src/api/Identity/VisorUser.cs +10 −1 Original line number Diff line number Diff line using System.Security.Claims; using Cals.Authentication; using Cals.Visor.Api.Identity; using Cals.Visor.Application.Identity; namespace Cals.Visor.Identity; /// <summary> /// <see cref="IWiscEduUser"/> for VISOR app. /// </summary> public class VisorUser : WiscEduOidcUser, IWiscEduUser public class VisorUser : WiscEduOidcUser, IWiscEduUser, IVisorUser { public const string VisorAuthenticationType = "Visor"; Loading @@ -27,4 +28,12 @@ public class VisorUser : WiscEduOidcUser, IWiscEduUser } public long? Id { get; protected set; } public string? DisplayName => Name; public string? Username => NetId; public string? UniqueId => Pvi; public string? Upn => PrincipalName; } src/api/Program.cs +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ builder.Services.AddMemoryCache(); builder.Services.AddHttpContextAccessor(); builder.Services.AddApplication(); builder.Services.AddTransient<ICurrentUser, CurrentUserSource>(); // how can we add this into .AddApplication()? builder.Services.AddTransient<ICurrentUser, CurrentUserSource>(); builder.Services.AddInfrastructure(builder.Configuration); // BE SURE TO RE-REGISTER DomainEventsDispatcherNotificationHandlerDecorator //builder.Services.AddApiDocumentation(); Loading src/application/Identity/ICurrentUser.cs +1 −3 Original line number Diff line number Diff line using Cals.Authentication; namespace Cals.Visor.Application.Identity; /// <summary> Loading @@ -7,5 +5,5 @@ namespace Cals.Visor.Application.Identity; /// </summary> public interface ICurrentUser { IApplicationUser? CurrentUser(); IVisorUser? CurrentUser { get; } } src/application/Identity/IUserRepository.cs +1 −1 Original line number Diff line number Diff line using Cals.Visor.Models.Identity; using Cals.Visor.Models; namespace Cals.Visor.Application.Identity; Loading Loading
src/api/Authorization/CurrentUserSource.cs +2 −14 Original line number Diff line number Diff line using System.Security.Claims; using Cals.Authentication; using Cals.Visor.Application.Identity; using Cals.Visor.Identity; namespace Cals.Visor.Api.Authorization; Loading @@ -13,16 +12,5 @@ public class CurrentUserSource : ICurrentUser _httpContext = httpContext.HttpContext ?? throw new ArgumentNullException(nameof(httpContext)); } public IApplicationUser? CurrentUser() { if (_httpContext.User == null) return null; ClaimsPrincipal user = _httpContext.User; if (user == null || user.Identity == null) return null; if (!user.Identity.IsAuthenticated) return null; return new ClaimsApplicationUser(user); } public IVisorUser? CurrentUser => new VisorUser(_httpContext.User); }
src/api/Identity/VisorUser.cs +10 −1 Original line number Diff line number Diff line using System.Security.Claims; using Cals.Authentication; using Cals.Visor.Api.Identity; using Cals.Visor.Application.Identity; namespace Cals.Visor.Identity; /// <summary> /// <see cref="IWiscEduUser"/> for VISOR app. /// </summary> public class VisorUser : WiscEduOidcUser, IWiscEduUser public class VisorUser : WiscEduOidcUser, IWiscEduUser, IVisorUser { public const string VisorAuthenticationType = "Visor"; Loading @@ -27,4 +28,12 @@ public class VisorUser : WiscEduOidcUser, IWiscEduUser } public long? Id { get; protected set; } public string? DisplayName => Name; public string? Username => NetId; public string? UniqueId => Pvi; public string? Upn => PrincipalName; }
src/api/Program.cs +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ builder.Services.AddMemoryCache(); builder.Services.AddHttpContextAccessor(); builder.Services.AddApplication(); builder.Services.AddTransient<ICurrentUser, CurrentUserSource>(); // how can we add this into .AddApplication()? builder.Services.AddTransient<ICurrentUser, CurrentUserSource>(); builder.Services.AddInfrastructure(builder.Configuration); // BE SURE TO RE-REGISTER DomainEventsDispatcherNotificationHandlerDecorator //builder.Services.AddApiDocumentation(); Loading
src/application/Identity/ICurrentUser.cs +1 −3 Original line number Diff line number Diff line using Cals.Authentication; namespace Cals.Visor.Application.Identity; /// <summary> Loading @@ -7,5 +5,5 @@ namespace Cals.Visor.Application.Identity; /// </summary> public interface ICurrentUser { IApplicationUser? CurrentUser(); IVisorUser? CurrentUser { get; } }
src/application/Identity/IUserRepository.cs +1 −1 Original line number Diff line number Diff line using Cals.Visor.Models.Identity; using Cals.Visor.Models; namespace Cals.Visor.Application.Identity; Loading