Make methods virtual so they can be redefined in derived classes.

(cherry picked from commit ff3d8c1c6c)
This commit is contained in:
Jeroen Breuer
2023-01-27 17:19:41 +01:00
committed by Sebastiaan Janssen
parent 5966ad4a05
commit 815eb5b9c8
2 changed files with 9 additions and 9 deletions

View File

@@ -50,7 +50,7 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
}
/// <inheritdoc />
public async Task<bool> IsMemberAuthorizedAsync(
public virtual async Task<bool> IsMemberAuthorizedAsync(
IEnumerable<string>? allowTypes = null,
IEnumerable<string>? allowGroups = null,
IEnumerable<int>? allowMembers = null)
@@ -122,14 +122,14 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
}
/// <inheritdoc />
public bool IsLoggedIn()
public virtual bool IsLoggedIn()
{
HttpContext? httpContext = _httpContextAccessor.HttpContext;
return httpContext?.User.Identity?.IsAuthenticated ?? false;
}
/// <inheritdoc />
public async Task<bool> MemberHasAccessAsync(string path)
public virtual async Task<bool> MemberHasAccessAsync(string path)
{
if (await IsProtectedAsync(path))
{
@@ -140,7 +140,7 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
}
/// <inheritdoc />
public async Task<IReadOnlyDictionary<string, bool>> MemberHasAccessAsync(IEnumerable<string> paths)
public virtual async Task<IReadOnlyDictionary<string, bool>> MemberHasAccessAsync(IEnumerable<string> paths)
{
IReadOnlyDictionary<string, bool> protectedPaths = await IsProtectedAsync(paths);
@@ -163,10 +163,10 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
/// <remarks>
/// this is a cached call
/// </remarks>
public Task<bool> IsProtectedAsync(string path) => Task.FromResult(_publicAccessService.IsProtected(path).Success);
public virtual Task<bool> IsProtectedAsync(string path) => Task.FromResult(_publicAccessService.IsProtected(path).Success);
/// <inheritdoc />
public Task<IReadOnlyDictionary<string, bool>> IsProtectedAsync(IEnumerable<string> paths)
public virtual Task<IReadOnlyDictionary<string, bool>> IsProtectedAsync(IEnumerable<string> paths)
{
var result = new Dictionary<string, bool>();
foreach (var path in paths)
@@ -179,7 +179,7 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
}
/// <inheritdoc />
public async Task<MemberIdentityUser?> GetCurrentMemberAsync()
public virtual async Task<MemberIdentityUser?> GetCurrentMemberAsync()
{
if (_currentMember == null)
{
@@ -194,7 +194,7 @@ public class MemberManager : UmbracoUserManager<MemberIdentityUser, MemberPasswo
return _currentMember;
}
public IPublishedContent? AsPublishedMember(MemberIdentityUser user) => _store.GetPublishedMember(user);
public virtual IPublishedContent? AsPublishedMember(MemberIdentityUser user) => _store.GetPublishedMember(user);
/// <summary>
/// This will check if the member has access to this path

View File

@@ -126,7 +126,7 @@ public class MemberSignInManager : UmbracoSignInManager<MemberIdentityUser>, IMe
/// <summary>
/// Custom ExternalLoginSignInAsync overload for handling external sign in with auto-linking
/// </summary>
public async Task<SignInResult> ExternalLoginSignInAsync(ExternalLoginInfo loginInfo, bool isPersistent, bool bypassTwoFactor = false)
public virtual async Task<SignInResult> ExternalLoginSignInAsync(ExternalLoginInfo loginInfo, bool isPersistent, bool bypassTwoFactor = false)
{
// borrowed from https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Core/src/SignInManager.cs
// to be able to deal with auto-linking and reduce duplicate lookups