Commit 820e3833 authored by Eric Dieckman's avatar Eric Dieckman
Browse files

Add user interactions for the system

parent 7761bb2a
Loading
Loading
Loading
Loading
+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;

@@ -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);
}
+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";

@@ -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;
}
+1 −1
Original line number Diff line number Diff line
@@ -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();

+1 −3
Original line number Diff line number Diff line
using Cals.Authentication;

namespace Cals.Visor.Application.Identity;

/// <summary>
@@ -7,5 +5,5 @@ namespace Cals.Visor.Application.Identity;
/// </summary>
public interface ICurrentUser
{
    IApplicationUser? CurrentUser();
    IVisorUser? CurrentUser { get; }
}
+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