From 8e3cb8f3e66423537e2e91d3f8f8470849608c1a Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Thu, 27 Feb 2020 09:56:35 +0100 Subject: [PATCH] Removed MembershipHelper from UmbracoHelper --- .../Routing/RenderRouteHandlerTests.cs | 6 +- .../TestControllerActivatorBase.cs | 5 +- .../Testing/TestingTests/MockTests.cs | 6 +- .../Web/Mvc/SurfaceControllerTests.cs | 3 +- .../Controllers/UmbLoginController.cs | 10 +- .../Controllers/UmbLoginStatusController.cs | 10 +- .../Controllers/UmbProfileController.cs | 12 +- .../Controllers/UmbRegisterController.cs | 10 +- src/Umbraco.Web/Mvc/PluginController.cs | 5 - src/Umbraco.Web/Mvc/UmbracoController.cs | 5 - .../Mvc/UmbracoViewPageOfTModel.cs | 5 - src/Umbraco.Web/Runtime/WebInitialComposer.cs | 3 +- src/Umbraco.Web/Security/MembershipHelper.cs | 1 - src/Umbraco.Web/UmbracoHelper.cs | 147 +----------------- .../WebApi/UmbracoApiControllerBase.cs | 5 - 15 files changed, 42 insertions(+), 191 deletions(-) diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs index d7b4b154eb..5b66d90722 100644 --- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs +++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs @@ -156,14 +156,12 @@ namespace Umbraco.Tests.Routing var handler = new RenderRouteHandler(umbracoContext, new TestControllerFactory(umbracoContextAccessor, Mock.Of(), context => { - var membershipHelper = new MembershipHelper( - httpContextAccessor, Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), AppCaches.Disabled, Mock.Of(), ShortStringHelper, Mock.Of()); - return new CustomDocumentController(Factory.GetInstance(), + return new CustomDocumentController(Factory.GetInstance(), umbracoContextAccessor, Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), membershipHelper)); + new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of())); }), ShortStringHelper); handler.GetHandlerForRoute(httpContext.Request.RequestContext, frequest); diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs index 2b0186f634..611ba086f5 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs @@ -154,14 +154,11 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting urlHelper.Setup(provider => provider.GetUrl(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) .Returns(UrlInfo.Url("/hello/world/1234")); - var membershipHelper = new MembershipHelper(httpContextAccessor, Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), AppCaches.Disabled, Mock.Of(), new MockShortStringHelper(), Mock.Of()); - var umbHelper = new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), - Mock.Of(), - membershipHelper); + Mock.Of()); return CreateController(controllerType, request, umbracoContextAccessor, umbHelper); } diff --git a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs index bd7c2f2ab1..c604e1a5d6 100644 --- a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs +++ b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs @@ -69,8 +69,7 @@ namespace Umbraco.Tests.Testing.TestingTests Mock.Of(), Mock.Of(), Mock.Of(), - Mock.Of(), - new MembershipHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), AppCaches.Disabled, Mock.Of(), ShortStringHelper, Mock.Of())); + Mock.Of()); Assert.Pass(); } @@ -107,7 +106,8 @@ namespace Umbraco.Tests.Testing.TestingTests var memberTypeService = Mock.Of(); var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of(), TestHelper.GetHostingEnvironment(), TestHelper.GetIpResolver()); var membershipHelper = new MembershipHelper(Mock.Of(), Mock.Of(), membershipProvider, Mock.Of(), memberService, memberTypeService, Mock.Of(), AppCaches.Disabled, logger, ShortStringHelper, Mock.Of()); - var umbracoHelper = new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), membershipHelper); + var umbracoHelper = new UmbracoHelper(Mock.Of(), Mock.Of(), Mock.Of(), + Mock.Of(), Mock.Of()); var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of() })); var umbracoApiController = new FakeUmbracoApiController(Mock.Of(), Mock.Of(), Mock.Of(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of(), umbracoHelper, umbracoMapper, Mock.Of()); diff --git a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs index 2a5ca083ba..fd222086aa 100644 --- a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs @@ -123,8 +123,7 @@ namespace Umbraco.Tests.Web.Mvc Mock.Of(), Mock.Of(), Mock.Of(), - Mock.Of(query => query.Content(2) == content.Object), - new MembershipHelper(Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of(), AppCaches.Disabled, Mock.Of(), ShortStringHelper, Mock.Of())); + Mock.Of(query => query.Content(2) == content.Object)); var ctrl = new TestSurfaceController(umbracoContextAccessor, helper); var result = ctrl.GetContent(2) as PublishedContentResult; diff --git a/src/Umbraco.Web/Controllers/UmbLoginController.cs b/src/Umbraco.Web/Controllers/UmbLoginController.cs index 88bc17abff..dc77d3485b 100644 --- a/src/Umbraco.Web/Controllers/UmbLoginController.cs +++ b/src/Umbraco.Web/Controllers/UmbLoginController.cs @@ -6,18 +6,24 @@ using Umbraco.Core.Cache; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Services; +using Umbraco.Web.Security; namespace Umbraco.Web.Controllers { public class UmbLoginController : SurfaceController { + private readonly MembershipHelper _membershipHelper; + public UmbLoginController() { } - public UmbLoginController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + public UmbLoginController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, + ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, + MembershipHelper membershipHelper) : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) { + _membershipHelper = membershipHelper; } [HttpPost] @@ -30,7 +36,7 @@ namespace Umbraco.Web.Controllers return CurrentUmbracoPage(); } - if (Members.Login(model.Username, model.Password) == false) + if (_membershipHelper.Login(model.Username, model.Password) == false) { //don't add a field level error, just model level ModelState.AddModelError("loginModel", "Invalid username or password"); diff --git a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs index 8f572404fc..aed60af168 100644 --- a/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs +++ b/src/Umbraco.Web/Controllers/UmbLoginStatusController.cs @@ -7,19 +7,25 @@ using Umbraco.Core.Cache; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; using Umbraco.Core.Services; +using Umbraco.Web.Security; namespace Umbraco.Web.Controllers { [MemberAuthorize] public class UmbLoginStatusController : SurfaceController { + private readonly MembershipHelper _membershipHelper; + public UmbLoginStatusController() { } - public UmbLoginStatusController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + public UmbLoginStatusController(IUmbracoContextAccessor umbracoContextAccessor, + IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, + IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) { + _membershipHelper = membershipHelper; } [HttpPost] @@ -32,7 +38,7 @@ namespace Umbraco.Web.Controllers return CurrentUmbracoPage(); } - if (Members.IsLoggedIn()) + if (_membershipHelper.IsLoggedIn()) { FormsAuthentication.SignOut(); } diff --git a/src/Umbraco.Web/Controllers/UmbProfileController.cs b/src/Umbraco.Web/Controllers/UmbProfileController.cs index c922b4142f..b736a3fcc7 100644 --- a/src/Umbraco.Web/Controllers/UmbProfileController.cs +++ b/src/Umbraco.Web/Controllers/UmbProfileController.cs @@ -15,12 +15,18 @@ namespace Umbraco.Web.Controllers [MemberAuthorize] public class UmbProfileController : SurfaceController { + private readonly MembershipHelper _membershipHelper; + public UmbProfileController() { } - public UmbProfileController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + public UmbProfileController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, + ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, + UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) - { } + { + _membershipHelper = membershipHelper; + } [HttpPost] [ValidateAntiForgeryToken] @@ -32,7 +38,7 @@ namespace Umbraco.Web.Controllers return CurrentUmbracoPage(); } - var updateAttempt = Members.UpdateMemberProfile(model); + var updateAttempt = _membershipHelper.UpdateMemberProfile(model); if (updateAttempt.Success == false) { //don't add a field level error, just model level diff --git a/src/Umbraco.Web/Controllers/UmbRegisterController.cs b/src/Umbraco.Web/Controllers/UmbRegisterController.cs index 4f4173a67d..ad5fd0c900 100644 --- a/src/Umbraco.Web/Controllers/UmbRegisterController.cs +++ b/src/Umbraco.Web/Controllers/UmbRegisterController.cs @@ -8,18 +8,24 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Services; using Umbraco.Web.Models; using Umbraco.Web.Mvc; +using Umbraco.Web.Security; namespace Umbraco.Web.Controllers { public class UmbRegisterController : SurfaceController { + private readonly MembershipHelper _membershipHelper; + public UmbRegisterController() { } - public UmbRegisterController(IUmbracoContextAccessor umbracoContextAccessor, IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper) + public UmbRegisterController(IUmbracoContextAccessor umbracoContextAccessor, + IUmbracoDatabaseFactory databaseFactory, ServiceContext services, AppCaches appCaches, ILogger logger, + IProfilingLogger profilingLogger, UmbracoHelper umbracoHelper, MembershipHelper membershipHelper) : base(umbracoContextAccessor, databaseFactory, services, appCaches, logger, profilingLogger, umbracoHelper) { + _membershipHelper = membershipHelper; } [HttpPost] @@ -40,7 +46,7 @@ namespace Umbraco.Web.Controllers } MembershipCreateStatus status; - var member = Members.RegisterMember(model, out status, model.LoginOnSuccess); + var member = _membershipHelper.RegisterMember(model, out status, model.LoginOnSuccess); switch (status) { diff --git a/src/Umbraco.Web/Mvc/PluginController.cs b/src/Umbraco.Web/Mvc/PluginController.cs index a87f495c9b..bd5d01995d 100644 --- a/src/Umbraco.Web/Mvc/PluginController.cs +++ b/src/Umbraco.Web/Mvc/PluginController.cs @@ -59,11 +59,6 @@ namespace Umbraco.Web.Mvc /// public IProfilingLogger ProfilingLogger { get; } - /// - /// Gets the membership helper. - /// - public MembershipHelper Members => Umbraco.MembershipHelper; - /// /// Gets the Umbraco helper. /// diff --git a/src/Umbraco.Web/Mvc/UmbracoController.cs b/src/Umbraco.Web/Mvc/UmbracoController.cs index fd5ce6073e..4455ef18c8 100644 --- a/src/Umbraco.Web/Mvc/UmbracoController.cs +++ b/src/Umbraco.Web/Mvc/UmbracoController.cs @@ -57,11 +57,6 @@ namespace Umbraco.Web.Mvc protected IOwinContext OwinContext => Request.GetOwinContext(); - /// - /// Gets the membership helper. - /// - public MembershipHelper Members => Umbraco.MembershipHelper; - /// /// Gets the Umbraco helper. /// diff --git a/src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs b/src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs index 9526452757..e7e353be30 100644 --- a/src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs +++ b/src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs @@ -101,11 +101,6 @@ namespace Umbraco.Web.Mvc } } - /// - /// Gets the membership helper. - /// - public MembershipHelper Members => Umbraco.MembershipHelper; - protected UmbracoViewPage() : this( Current.Factory.GetInstance(), diff --git a/src/Umbraco.Web/Runtime/WebInitialComposer.cs b/src/Umbraco.Web/Runtime/WebInitialComposer.cs index df5d6756ae..35aae084de 100644 --- a/src/Umbraco.Web/Runtime/WebInitialComposer.cs +++ b/src/Umbraco.Web/Runtime/WebInitialComposer.cs @@ -131,8 +131,7 @@ namespace Umbraco.Web.Runtime var umbCtx = factory.GetInstance(); return new UmbracoHelper(umbCtx.IsFrontEndUmbracoRequest ? umbCtx.PublishedRequest?.PublishedContent : null, factory.GetInstance(), factory.GetInstance(), - factory.GetInstance(), factory.GetInstance(), - factory.GetInstance()); + factory.GetInstance(), factory.GetInstance()); }); else composition.Register(_ => new UmbracoHelper()); diff --git a/src/Umbraco.Web/Security/MembershipHelper.cs b/src/Umbraco.Web/Security/MembershipHelper.cs index 8ed85b21a5..6c4d406c6a 100644 --- a/src/Umbraco.Web/Security/MembershipHelper.cs +++ b/src/Umbraco.Web/Security/MembershipHelper.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using System.Web; using System.Web.Security; using Umbraco.Core; using Umbraco.Core.Logging; diff --git a/src/Umbraco.Web/UmbracoHelper.cs b/src/Umbraco.Web/UmbracoHelper.cs index 241c079ab4..e1e74ead5e 100644 --- a/src/Umbraco.Web/UmbracoHelper.cs +++ b/src/Umbraco.Web/UmbracoHelper.cs @@ -5,13 +5,10 @@ using System.Web; using System.Xml.XPath; using Umbraco.Core; using Umbraco.Core.Dictionary; -using Umbraco.Core.Logging; -using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Xml; using Umbraco.Web.Composing; using Umbraco.Web.Mvc; -using Umbraco.Web.Security; namespace Umbraco.Web { @@ -25,7 +22,6 @@ namespace Umbraco.Web { private readonly IPublishedContentQuery _publishedContentQuery; private readonly ITagQuery _tagQuery; - private readonly MembershipHelper _membershipHelper; private readonly IUmbracoComponentRenderer _componentRenderer; private readonly ICultureDictionaryFactory _cultureDictionaryFactory; @@ -48,13 +44,11 @@ namespace Umbraco.Web ITagQuery tagQuery, ICultureDictionaryFactory cultureDictionary, IUmbracoComponentRenderer componentRenderer, - IPublishedContentQuery publishedContentQuery, - MembershipHelper membershipHelper) + IPublishedContentQuery publishedContentQuery) { _tagQuery = tagQuery ?? throw new ArgumentNullException(nameof(tagQuery)); _cultureDictionaryFactory = cultureDictionary ?? throw new ArgumentNullException(nameof(cultureDictionary)); _componentRenderer = componentRenderer ?? throw new ArgumentNullException(nameof(componentRenderer)); - _membershipHelper = membershipHelper ?? throw new ArgumentNullException(nameof(membershipHelper)); _publishedContentQuery = publishedContentQuery ?? throw new ArgumentNullException(nameof(publishedContentQuery)); _currentPage = currentPage; } @@ -84,11 +78,6 @@ namespace Umbraco.Web /// public IPublishedContentQuery ContentQuery => Ensure(_publishedContentQuery); - /// - /// Gets the membership helper. - /// - public MembershipHelper MembershipHelper => Ensure(_membershipHelper); - /// /// Gets (or sets) the current item assigned to the UmbracoHelper. /// @@ -208,141 +197,7 @@ namespace Umbraco.Web #endregion - #region Membership - /// - /// Check if the current user has access to a document - /// - /// The full path of the document object to check - /// True if the current user has access or if the current document isn't protected - public bool MemberHasAccess(string path) - { - return MembershipHelper.MemberHasAccess(path); - } - - /// - /// Whether or not the current member is logged in (based on the membership provider) - /// - /// True is the current user is logged in - public bool MemberIsLoggedOn() - { - return MembershipHelper.IsLoggedIn(); - } - - #endregion - - - - #region Member/Content/Media from Udi - - public IPublishedContent PublishedContent(Udi udi) - { - var guidUdi = udi as GuidUdi; - if (guidUdi == null) return null; - - var umbracoType = UdiEntityTypeHelper.ToUmbracoObjectType(udi.EntityType); - - switch (umbracoType) - { - case UmbracoObjectTypes.Document: - return Content(guidUdi.Guid); - case UmbracoObjectTypes.Media: - return Media(guidUdi.Guid); - case UmbracoObjectTypes.Member: - return Member(guidUdi.Guid); - } - - return null; - } - - #endregion - - #region Members - - public IPublishedContent Member(Udi id) - { - var guidUdi = id as GuidUdi; - return guidUdi == null ? null : Member(guidUdi.Guid); - } - - public IPublishedContent Member(Guid id) - { - return MembershipHelper.GetById(id); - } - - public IPublishedContent Member(object id) - { - if (ConvertIdObjectToInt(id, out var intId)) - return Member(intId); - if (ConvertIdObjectToGuid(id, out var guidId)) - return Member(guidId); - if (ConvertIdObjectToUdi(id, out var udiId)) - return Member(udiId); - return null; - } - - public IPublishedContent Member(int id) - { - return MembershipHelper.GetById(id); - } - - public IPublishedContent Member(string id) - { - var asInt = id.TryConvertTo(); - return asInt ? MembershipHelper.GetById(asInt.Result) : MembershipHelper.GetByProviderKey(id); - } - - public IEnumerable Members(IEnumerable ids) - { - return MembershipHelper.GetByIds(ids); - } - - public IEnumerable Members(IEnumerable ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(IEnumerable ids) - { - return MembershipHelper.GetByIds(ids); - } - - public IEnumerable Members(IEnumerable ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(IEnumerable ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(params int[] ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(params string[] ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(params Guid[] ids) - { - return MembershipHelper.GetByIds(ids); - } - - public IEnumerable Members(params Udi[] ids) - { - return ids.Select(Member).WhereNotNull(); - } - - public IEnumerable Members(params object[] ids) - { - return ids.Select(Member).WhereNotNull(); - } - - #endregion #region Content diff --git a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs index b20ebe7e09..0d0b64b085 100644 --- a/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs +++ b/src/Umbraco.Web/WebApi/UmbracoApiControllerBase.cs @@ -120,11 +120,6 @@ namespace Umbraco.Web.WebApi /// protected Uri ApplicationUrl => RuntimeState.ApplicationUrl; - /// - /// Gets the membership helper. - /// - public MembershipHelper Members => Umbraco.MembershipHelper; - /// /// Gets the Umbraco helper. ///