diff --git a/src/Umbraco.Core/Models/Membership/MembershipExtensions.cs b/src/Umbraco.Core/Models/Membership/MembershipExtensions.cs index 22dcd8aa0e..d41cea5936 100644 --- a/src/Umbraco.Core/Models/Membership/MembershipExtensions.cs +++ b/src/Umbraco.Core/Models/Membership/MembershipExtensions.cs @@ -36,7 +36,7 @@ namespace Umbraco.Core.Models.Membership { return MembershipScenario.NativeUmbraco; } - var memberType = ApplicationContext.Current.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); + var memberType = ApplicationContext.Current.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.Member); return memberType != null ? MembershipScenario.CustomProviderWithUmbracoLink : MembershipScenario.StandaloneCustomProvider; diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index 583af2d25c..f994e08ed7 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -26,8 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ITagsRepository _tagRepository; private readonly CacheHelper _cacheHelper; - public ContentRepository(IDatabaseUnitOfWork work, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagsRepository tagRepository) - public ContentRepository(IDatabaseUnitOfWork work, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, CacheHelper cacheHelper) + public ContentRepository(IDatabaseUnitOfWork work, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagsRepository tagRepository, CacheHelper cacheHelper) : base(work) { if (contentTypeRepository == null) throw new ArgumentNullException("contentTypeRepository"); @@ -41,8 +40,7 @@ namespace Umbraco.Core.Persistence.Repositories EnsureUniqueNaming = true; } - public ContentRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagsRepository tagRepository) - public ContentRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, CacheHelper cacheHelper) + public ContentRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagsRepository tagRepository, CacheHelper cacheHelper) : base(work, cache) { if (contentTypeRepository == null) throw new ArgumentNullException("contentTypeRepository"); diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs index d32867e5ae..f78be2c272 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs @@ -26,8 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ITagsRepository _tagRepository; private readonly IMemberGroupRepository _memberGroupRepository; - public MemberRepository(IDatabaseUnitOfWork work, IMemberTypeRepository memberTypeRepository, ITagsRepository tagRepository) - public MemberRepository(IDatabaseUnitOfWork work, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository) + public MemberRepository(IDatabaseUnitOfWork work, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagsRepository tagRepository) : base(work) { if (memberTypeRepository == null) throw new ArgumentNullException("memberTypeRepository"); @@ -37,8 +36,7 @@ namespace Umbraco.Core.Persistence.Repositories _memberGroupRepository = memberGroupRepository; } - public MemberRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IMemberTypeRepository memberTypeRepository, ITagsRepository tagRepository) - public MemberRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository) + public MemberRepository(IDatabaseUnitOfWork work, IRepositoryCacheProvider cache, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagsRepository tagRepository) : base(work, cache) { if (memberTypeRepository == null) throw new ArgumentNullException("memberTypeRepository"); diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs index 19d771d194..21887c01b8 100644 --- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs +++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs @@ -60,12 +60,12 @@ namespace Umbraco.Core.Persistence public virtual IContentRepository CreateContentRepository(IDatabaseUnitOfWork uow) { return new ContentRepository( - uow, + uow, _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current, CreateContentTypeRepository(uow), CreateTemplateRepository(uow), - CreateTagsRepository(uow)) { EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming }; - _cacheHelper) { EnsureUniqueNaming = Configuration.UmbracoSettings.EnsureUniqueNaming }; + CreateTagsRepository(uow), + _cacheHelper) { EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming }; } public virtual IContentTypeRepository CreateContentTypeRepository(IDatabaseUnitOfWork uow) @@ -176,15 +176,12 @@ namespace Umbraco.Core.Persistence internal virtual IMemberRepository CreateMemberRepository(IDatabaseUnitOfWork uow) { - return new MemberRepository(uow, - _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current, - CreateMemberTypeRepository(uow), - CreateTagsRepository(uow)); return new MemberRepository( - uow, - _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current, + uow, + _disableAllCache ? (IRepositoryCacheProvider)NullCacheProvider.Current : RuntimeCacheProvider.Current, CreateMemberTypeRepository(uow), - CreateMemberGroupRepository(uow)); + CreateMemberGroupRepository(uow), + CreateTagsRepository(uow)); } internal virtual IMemberTypeRepository CreateMemberTypeRepository(IDatabaseUnitOfWork uow) diff --git a/src/Umbraco.Core/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs index d685cd7683..664a1dd573 100644 --- a/src/Umbraco.Core/Services/ServiceContext.cs +++ b/src/Umbraco.Core/Services/ServiceContext.cs @@ -58,7 +58,7 @@ namespace Umbraco.Core.Services IPackagingService packagingService, IEntityService entityService, IRelationService relationService, - IMemberGroupService memberGroupService/*, + IMemberGroupService memberGroupService, ISectionService sectionService, IApplicationTreeService treeService, ITagService tagService) diff --git a/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7UpgradeTest.cs b/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7UpgradeTest.cs index c1436b161d..ec771d23bb 100644 --- a/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7UpgradeTest.cs +++ b/src/Umbraco.Tests/Migrations/Upgrades/ValidateV7UpgradeTest.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; @@ -24,7 +25,7 @@ namespace Umbraco.Tests.Migrations.Upgrades var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); var tagRepository = new TagsRepository(unitOfWork, NullCacheProvider.Current); contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper()); return repository; } diff --git a/src/Umbraco.Tests/MockTests.cs b/src/Umbraco.Tests/MockTests.cs index e8201d13ee..45b07d4c71 100644 --- a/src/Umbraco.Tests/MockTests.cs +++ b/src/Umbraco.Tests/MockTests.cs @@ -49,7 +49,7 @@ namespace Umbraco.Tests new Mock().Object, new RepositoryFactory(true), new Mock().Object), - new Mock().Object/*, + new Mock().Object, new Mock().Object, new Mock().Object, new Mock().Object); @@ -90,11 +90,12 @@ namespace Umbraco.Tests new Mock().Object, new RepositoryFactory(true), new Mock().Object), + new Mock().Object, new Mock().Object, - new Mock().Object), new Mock().Object, new Mock().Object), CacheHelper.CreateDisabledCacheHelper()); + Assert.Pass(); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs index 9655ea445f..813b6b0f98 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs @@ -39,9 +39,8 @@ namespace Umbraco.Tests.Persistence.Repositories { var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); var tagRepository = new TagsRepository(unitOfWork, NullCacheProvider.Current); - contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, CacheHelper.CreateDisabledCacheHelper()); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository); + contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper()); return repository; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs index 3104cd5f7f..2bcb2e9c04 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs @@ -37,8 +37,7 @@ namespace Umbraco.Tests.Persistence.Repositories var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); var tagRepository = new TagsRepository(unitOfWork, NullCacheProvider.Current); contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, CacheHelper.CreateDisabledCacheHelper()); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper()); return repository; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs index e96a3e4790..3bd9c2001f 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs @@ -32,10 +32,9 @@ namespace Umbraco.Tests.Persistence.Repositories private MemberRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository) { memberTypeRepository = new MemberTypeRepository(unitOfWork, NullCacheProvider.Current); - var tagRepo = new TagsRepository(unitOfWork, NullCacheProvider.Current); - var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository, tagRepo); memberGroupRepository = new MemberGroupRepository(unitOfWork, NullCacheProvider.Current, CacheHelper.CreateDisabledCacheHelper()); - var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository, memberGroupRepository); + var tagRepo = new TagsRepository(unitOfWork, NullCacheProvider.Current); + var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository, memberGroupRepository, tagRepo); return repository; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs index 6961faa9a0..846e059298 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using NUnit.Framework; +using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; @@ -694,7 +695,7 @@ namespace Umbraco.Tests.Persistence.Repositories var templateRepository = new TemplateRepository(unitOfWork, NullCacheProvider.Current); var tagRepository = new TagsRepository(unitOfWork, NullCacheProvider.Current); contentTypeRepository = new ContentTypeRepository(unitOfWork, NullCacheProvider.Current, templateRepository); - var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository); + var repository = new ContentRepository(unitOfWork, NullCacheProvider.Current, contentTypeRepository, templateRepository, tagRepository, CacheHelper.CreateDisabledCacheHelper()); return repository; } diff --git a/src/Umbraco.Web/Editors/CurrentUserController.cs b/src/Umbraco.Web/Editors/CurrentUserController.cs index 880ca7ab41..3afab97676 100644 --- a/src/Umbraco.Web/Editors/CurrentUserController.cs +++ b/src/Umbraco.Web/Editors/CurrentUserController.cs @@ -65,7 +65,7 @@ namespace Umbraco.Web.Editors throw new NotSupportedException("Currently the user editor does not support providers that have RequiresQuestionAndAnswer specified"); } - var passwordChangeResult = Security.ChangePassword(Security.CurrentUser.Username, data, userProvider); + var passwordChangeResult = Members.ChangePassword(Security.CurrentUser.Username, data, userProvider); if (passwordChangeResult.Success) { //even if we weren't resetting this, it is the correct value (null), otherwise if we were resetting then it will contain the new pword diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index 4e8183d5a6..11c5b38241 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -140,7 +140,7 @@ namespace Umbraco.Web.Editors throw new HttpResponseException(HttpStatusCode.NotFound); } - var contentType = Services.MemberTypeService.GetMemberType(contentTypeAlias); + var contentType = Services.MemberTypeService.Get(contentTypeAlias); if (contentType == null) { throw new HttpResponseException(HttpStatusCode.NotFound); @@ -384,7 +384,7 @@ namespace Umbraco.Web.Editors return null; } - var passwordChangeResult = Security.ChangePassword(membershipUser.UserName, contentItem.Password, Membership.Provider); + var passwordChangeResult = Members.ChangePassword(membershipUser.UserName, contentItem.Password, Membership.Provider); if (passwordChangeResult.Success) { //If the provider has changed some values, these values need to be reflected in the member object diff --git a/src/Umbraco.Web/Editors/MemberTypeController.cs b/src/Umbraco.Web/Editors/MemberTypeController.cs index 920df11760..8b098d82d9 100644 --- a/src/Umbraco.Web/Editors/MemberTypeController.cs +++ b/src/Umbraco.Web/Editors/MemberTypeController.cs @@ -41,7 +41,7 @@ namespace Umbraco.Web.Editors /// public IEnumerable GetAllTypes() { - return Services.MemberTypeService.GetAllMemberTypes() + return Services.MemberTypeService.GetAll() .Select(Mapper.Map); } } diff --git a/src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs index 1d3b5ba33c..b30b9667e7 100644 --- a/src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs @@ -297,7 +297,7 @@ namespace Umbraco.Web.Models.Mapping { return MembershipScenario.NativeUmbraco; } - var memberType = _memberTypeService.Value.GetMemberType(Constants.Conventions.MemberTypes.Member); + var memberType = _memberTypeService.Value.Get(Constants.Conventions.MemberTypes.Member); return memberType != null ? MembershipScenario.CustomProviderWithUmbracoLink : MembershipScenario.StandaloneCustomProvider; diff --git a/src/Umbraco.Web/Mvc/UmbracoPageResult.cs b/src/Umbraco.Web/Mvc/UmbracoPageResult.cs index d6fe6964f6..ac981d1512 100644 --- a/src/Umbraco.Web/Mvc/UmbracoPageResult.cs +++ b/src/Umbraco.Web/Mvc/UmbracoPageResult.cs @@ -4,7 +4,6 @@ using System.Web; using System.Web.Mvc; using System.Web.Routing; using Umbraco.Core; -using umbraco.presentation.install.utills; namespace Umbraco.Web.Mvc { diff --git a/src/Umbraco.Web/Security/WebSecurity.cs b/src/Umbraco.Web/Security/WebSecurity.cs index 463cdc3078..1282480ff5 100644 --- a/src/Umbraco.Web/Security/WebSecurity.cs +++ b/src/Umbraco.Web/Security/WebSecurity.cs @@ -265,42 +265,9 @@ namespace Umbraco.Web.Security { return true; } - return CurrentUser.Applications.Any(uApp => uApp.alias == app); + return CurrentUser.AllowedSections.Any(uApp => uApp.InvariantEquals(app)); } - - internal void UpdateLogin(long timeout) - { - // only call update if more than 1/10 of the timeout has passed - if (timeout - (((TicksPrMinute * UmbracoTimeOutInMinutes) * 0.8)) < DateTime.Now.Ticks) - SqlHelper.ExecuteNonQuery( - "UPDATE umbracoUserLogins SET timeout = @timeout WHERE contextId = @contextId", - SqlHelper.CreateParameter("@timeout", DateTime.Now.Ticks + (TicksPrMinute * UmbracoTimeOutInMinutes)), - SqlHelper.CreateParameter("@contextId", UmbracoUserContextId)); - } - - internal long GetTimeout(string umbracoUserContextId) - { - return ApplicationContext.Current.ApplicationCache.GetCacheItem( - CacheKeys.UserContextTimeoutCacheKey + umbracoUserContextId, - new TimeSpan(0, UmbracoTimeOutInMinutes / 10, 0), - () => GetTimeout(true)); - } - - internal long GetTimeout(bool byPassCache) - { - if (UmbracoSettings.KeepUserLoggedIn) - RenewLoginTimeout(); - - if (byPassCache) - { - return SqlHelper.ExecuteScalar("select timeout from umbracoUserLogins where contextId=@contextId", - SqlHelper.CreateParameter("@contextId", new Guid(UmbracoUserContextId)) - ); - } - - return GetTimeout(UmbracoUserContextId); - } - + /// /// Gets the user id. /// @@ -412,7 +379,7 @@ namespace Umbraco.Web.Security /// internal bool UserHasAppAccess(string app, IUser user) { - var apps = _applicationContext.Services.UserService.GetUserSections(user); + var apps = user.AllowedSections; return apps.Any(uApp => uApp.InvariantEquals(app)); } diff --git a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs index cc6e244886..828520c0b3 100644 --- a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs +++ b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs @@ -117,7 +117,7 @@ namespace Umbraco.Web.WebApi.Binders { if (Membership.Provider.Name == Constants.Conventions.Member.UmbracoMemberProviderName) { - var contentType = ApplicationContext.Services.MemberTypeService.GetMemberType(model.ContentTypeAlias); + var contentType = ApplicationContext.Services.MemberTypeService.Get(model.ContentTypeAlias); if (contentType == null) { throw new InvalidOperationException("No member type found wth alias " + model.ContentTypeAlias); @@ -138,7 +138,7 @@ namespace Umbraco.Web.WebApi.Binders //If the default Member type exists, we'll use that to create the IMember - that way we can associate the custom membership // provider to our data - eventually we can support editing custom properties with a custom provider. - var memberType = ApplicationContext.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); + var memberType = ApplicationContext.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.Member); if (memberType != null) { FilterContentTypeProperties(memberType, memberType.PropertyTypes.Select(x => x.Alias).ToArray()); diff --git a/src/umbraco.businesslogic/User.cs b/src/umbraco.businesslogic/User.cs index a4a1f3630a..c1f23a0b7d 100644 --- a/src/umbraco.businesslogic/User.cs +++ b/src/umbraco.businesslogic/User.cs @@ -606,6 +606,7 @@ namespace umbraco.BusinessLogic // NH 4.7.1 changing default permission behavior to default to User Type permissions IF no specific permissions has been // set for the current node + var nodeId = Path.Contains(",") ? int.Parse(Path.Substring(Path.LastIndexOf(",", StringComparison.Ordinal) + 1)) : int.Parse(Path); if (cachedPermissions.Any(x => x.EntityId == nodeId)) { var found = cachedPermissions.First(x => x.EntityId == nodeId);