From 815eb5b9c88ed2d59d47dce5b1e12f20fbc74d52 Mon Sep 17 00:00:00 2001 From: Jeroen Breuer Date: Fri, 27 Jan 2023 17:19:41 +0100 Subject: [PATCH] Make methods virtual so they can be redefined in derived classes. (cherry picked from commit ff3d8c1c6c1483c2d4d2ce1849415cb2df5a71dd) --- src/Umbraco.Web.Common/Security/MemberManager.cs | 16 ++++++++-------- .../Security/MemberSignInManager.cs | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.Common/Security/MemberManager.cs b/src/Umbraco.Web.Common/Security/MemberManager.cs index 19be3de489..95d6d5b635 100644 --- a/src/Umbraco.Web.Common/Security/MemberManager.cs +++ b/src/Umbraco.Web.Common/Security/MemberManager.cs @@ -50,7 +50,7 @@ public class MemberManager : UmbracoUserManager - public async Task IsMemberAuthorizedAsync( + public virtual async Task IsMemberAuthorizedAsync( IEnumerable? allowTypes = null, IEnumerable? allowGroups = null, IEnumerable? allowMembers = null) @@ -122,14 +122,14 @@ public class MemberManager : UmbracoUserManager - public bool IsLoggedIn() + public virtual bool IsLoggedIn() { HttpContext? httpContext = _httpContextAccessor.HttpContext; return httpContext?.User.Identity?.IsAuthenticated ?? false; } /// - public async Task MemberHasAccessAsync(string path) + public virtual async Task MemberHasAccessAsync(string path) { if (await IsProtectedAsync(path)) { @@ -140,7 +140,7 @@ public class MemberManager : UmbracoUserManager - public async Task> MemberHasAccessAsync(IEnumerable paths) + public virtual async Task> MemberHasAccessAsync(IEnumerable paths) { IReadOnlyDictionary protectedPaths = await IsProtectedAsync(paths); @@ -163,10 +163,10 @@ public class MemberManager : UmbracoUserManager /// this is a cached call /// - public Task IsProtectedAsync(string path) => Task.FromResult(_publicAccessService.IsProtected(path).Success); + public virtual Task IsProtectedAsync(string path) => Task.FromResult(_publicAccessService.IsProtected(path).Success); /// - public Task> IsProtectedAsync(IEnumerable paths) + public virtual Task> IsProtectedAsync(IEnumerable paths) { var result = new Dictionary(); foreach (var path in paths) @@ -179,7 +179,7 @@ public class MemberManager : UmbracoUserManager - public async Task GetCurrentMemberAsync() + public virtual async Task GetCurrentMemberAsync() { if (_currentMember == null) { @@ -194,7 +194,7 @@ public class MemberManager : UmbracoUserManager _store.GetPublishedMember(user); + public virtual IPublishedContent? AsPublishedMember(MemberIdentityUser user) => _store.GetPublishedMember(user); /// /// This will check if the member has access to this path diff --git a/src/Umbraco.Web.Common/Security/MemberSignInManager.cs b/src/Umbraco.Web.Common/Security/MemberSignInManager.cs index 4517a0d865..c9c7f44805 100644 --- a/src/Umbraco.Web.Common/Security/MemberSignInManager.cs +++ b/src/Umbraco.Web.Common/Security/MemberSignInManager.cs @@ -126,7 +126,7 @@ public class MemberSignInManager : UmbracoSignInManager, IMe /// /// Custom ExternalLoginSignInAsync overload for handling external sign in with auto-linking /// - public async Task ExternalLoginSignInAsync(ExternalLoginInfo loginInfo, bool isPersistent, bool bypassTwoFactor = false) + public virtual async Task 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