From a22824e33a43e0d8b382cdcba87effb1b29ed430 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Tue, 17 Dec 2019 16:30:26 +0100 Subject: [PATCH] AB4227 - Moved Persistence Repository implementations --- .../Security/IPasswordHasher.cs | 12 ++++ src/Umbraco.Core/ContentExtensions.cs | 24 +------ .../Security/IUserAwarePasswordHasher.cs | 2 +- src/Umbraco.Core/Umbraco.Core.csproj | 65 ++----------------- .../Cache/DefaultRepositoryCachePolicy.cs | 0 .../Cache/FullDataSetRepositoryCachePolicy.cs | 0 .../Cache/RepositoryCachePolicyBase.cs | 0 .../SingleItemsOnlyRepositoryCachePolicy.cs | 0 .../ContentExtensions.cs | 31 +++++++++ .../ConventionsHelper.cs | 0 .../Models/Editors/UmbracoEntityReference.cs | 0 .../Models/PathValidationExtensions.cs | 0 .../Implement/AuditEntryRepository.cs | 0 .../Repositories/Implement/AuditRepository.cs | 0 .../Implement/ConsentRepository.cs | 0 .../Implement/ContentRepositoryBase.cs | 2 +- .../Implement/ContentTypeCommonRepository.cs | 0 .../Implement/ContentTypeRepository.cs | 0 .../Implement/ContentTypeRepositoryBase.cs | 0 .../Implement/DataTypeContainerRepository.cs | 0 .../Implement/DataTypeRepository.cs | 0 .../Implement/DictionaryRepository.cs | 0 .../Implement/DocumentBlueprintRepository.cs | 0 .../Implement/DocumentRepository.cs | 2 +- .../DocumentTypeContainerRepository.cs | 0 .../Implement/DomainRepository.cs | 0 .../Implement/EntityContainerRepository.cs | 0 .../Implement/EntityRepository.cs | 0 .../Implement/ExternalLoginRepository.cs | 3 +- .../Repositories/Implement/FileRepository.cs | 0 .../Implement/LanguageRepository.cs | 0 .../Implement/LanguageRepositoryExtensions.cs | 0 .../Repositories/Implement/MacroRepository.cs | 0 .../Repositories/Implement/MediaRepository.cs | 2 +- .../Implement/MediaTypeContainerRepository.cs | 0 .../Implement/MediaTypeRepository.cs | 0 .../Implement/MemberGroupRepository.cs | 0 .../Implement/MemberRepository.cs | 11 ++-- .../Implement/MemberTypeRepository.cs | 0 .../Implement/NPocoRepositoryBase.cs | 2 +- .../Implement/NotificationsRepository.cs | 0 .../Implement/PartialViewMacroRepository.cs | 0 .../Implement/PartialViewRepository.cs | 0 .../Implement/PermissionRepository.cs | 0 .../Implement/PublicAccessRepository.cs | 0 .../Repositories/Implement/QueryType.cs | 2 +- .../Implement/RedirectUrlRepository.cs | 0 .../Implement/RelationRepository.cs | 0 .../Implement/RelationTypeRepository.cs | 0 .../Implement/RepositoryBaseOfTIdTEntity.cs | 2 +- .../Implement/RepositoryCacheKeys.cs | 2 +- .../Implement/ScriptRepository.cs | 9 +-- .../Implement/ServerRegistrationRepository.cs | 0 .../Repositories/Implement/SimilarNodeName.cs | 0 .../Implement/SimpleGetRepository.cs | 0 .../Implement/StylesheetRepository.cs | 8 ++- .../Repositories/Implement/TagRepository.cs | 0 .../Implement/TemplateRepository.cs | 3 +- .../Repositories/Implement/TupleExtensions.cs | 0 .../Implement/UserGroupRepository.cs | 3 +- .../Repositories/Implement/UserRepository.cs | 0 .../DataValueReferenceFactoryCollection.cs | 0 ...aValueReferenceFactoryCollectionBuilder.cs | 0 .../PropertyEditors/IDataValueReference.cs | 0 .../IDataValueReferenceFactory.cs | 0 .../Repositories/MemberRepositoryTest.cs | 2 +- .../Repositories/ScriptRepositoryTest.cs | 2 +- .../Repositories/StylesheetRepositoryTest.cs | 2 +- src/Umbraco.Tests/Testing/UmbracoTestBase.cs | 3 + .../{ => Net}/AspNetBackOfficeInfo.cs | 0 .../{ => Net}/AspNetHttpContextAccessor.cs | 0 src/Umbraco.Web/{ => Net}/AspNetIpResolver.cs | 0 src/Umbraco.Web/Net/AspNetPasswordHasher.cs | 20 ++++++ .../{ => Net}/AspNetSessionIdResolver.cs | 0 src/Umbraco.Web/Runtime/WebInitialComposer.cs | 2 + .../Security/BackOfficeUserManager.cs | 2 +- src/Umbraco.Web/Umbraco.Web.csproj | 9 +-- 77 files changed, 111 insertions(+), 116 deletions(-) create mode 100644 src/Umbraco.Abstractions/Security/IPasswordHasher.cs rename src/{Umbraco.Core => Umbraco.Infrastructure}/Cache/DefaultRepositoryCachePolicy.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Cache/FullDataSetRepositoryCachePolicy.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Cache/RepositoryCachePolicyBase.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Cache/SingleItemsOnlyRepositoryCachePolicy.cs (100%) create mode 100644 src/Umbraco.Infrastructure/ContentExtensions.cs rename src/{Umbraco.Core => Umbraco.Infrastructure}/ConventionsHelper.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Models/Editors/UmbracoEntityReference.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Models/PathValidationExtensions.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/AuditEntryRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/AuditRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ConsentRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ContentRepositoryBase.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ContentTypeRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DataTypeContainerRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DataTypeRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DictionaryRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DocumentRepository.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/DomainRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/EntityContainerRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/EntityRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ExternalLoginRepository.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/FileRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/LanguageRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MacroRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MediaRepository.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MediaTypeRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MemberGroupRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MemberRepository.cs (98%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/MemberTypeRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/NPocoRepositoryBase.cs (96%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/NotificationsRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/PartialViewMacroRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/PartialViewRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/PermissionRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/PublicAccessRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/QueryType.cs (95%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/RedirectUrlRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/RelationRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/RelationTypeRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs (98%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/RepositoryCacheKeys.cs (92%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ScriptRepository.cs (94%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/ServerRegistrationRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/SimilarNodeName.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/SimpleGetRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/StylesheetRepository.cs (95%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/TagRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/TemplateRepository.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/TupleExtensions.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/UserGroupRepository.cs (99%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/Persistence/Repositories/Implement/UserRepository.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/PropertyEditors/DataValueReferenceFactoryCollection.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/PropertyEditors/IDataValueReference.cs (100%) rename src/{Umbraco.Core => Umbraco.Infrastructure}/PropertyEditors/IDataValueReferenceFactory.cs (100%) rename src/Umbraco.Web/{ => Net}/AspNetBackOfficeInfo.cs (100%) rename src/Umbraco.Web/{ => Net}/AspNetHttpContextAccessor.cs (100%) rename src/Umbraco.Web/{ => Net}/AspNetIpResolver.cs (100%) create mode 100644 src/Umbraco.Web/Net/AspNetPasswordHasher.cs rename src/Umbraco.Web/{ => Net}/AspNetSessionIdResolver.cs (100%) diff --git a/src/Umbraco.Abstractions/Security/IPasswordHasher.cs b/src/Umbraco.Abstractions/Security/IPasswordHasher.cs new file mode 100644 index 0000000000..2195570605 --- /dev/null +++ b/src/Umbraco.Abstractions/Security/IPasswordHasher.cs @@ -0,0 +1,12 @@ +namespace Umbraco.Core.Security +{ + public interface IPasswordHasher + { + /// + /// Hashes a password + /// + /// The password. + /// The password hashed. + string HashPassword(string password); + } +} diff --git a/src/Umbraco.Core/ContentExtensions.cs b/src/Umbraco.Core/ContentExtensions.cs index 4fd309f134..29520d0b20 100644 --- a/src/Umbraco.Core/ContentExtensions.cs +++ b/src/Umbraco.Core/ContentExtensions.cs @@ -54,29 +54,7 @@ namespace Umbraco.Core #endregion - /// - /// Removes characters that are not valid XML characters from all entity properties - /// of type string. See: http://stackoverflow.com/a/961504/5018 - /// - /// - /// - /// If this is not done then the xml cache can get corrupt and it will throw YSODs upon reading it. - /// - /// - public static void SanitizeEntityPropertiesForXmlStorage(this IContentBase entity) - { - entity.Name = entity.Name.ToValidXmlString(); - foreach (var property in entity.Properties) - { - foreach (var propertyValue in property.Values) - { - if (propertyValue.EditedValue is string editString) - propertyValue.EditedValue = editString.ToValidXmlString(); - if (propertyValue.PublishedValue is string publishedString) - propertyValue.PublishedValue = publishedString.ToValidXmlString(); - } - } - } + /// /// Checks if the IContentBase has children diff --git a/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs b/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs index 48a25c0e2b..4af6d7accd 100644 --- a/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs +++ b/src/Umbraco.Core/Security/IUserAwarePasswordHasher.cs @@ -8,7 +8,7 @@ namespace Umbraco.Core.Security /// /// /// - public interface IUserAwarePasswordHasher : IPasswordHasher + public interface IUserAwarePasswordHasher : Microsoft.AspNet.Identity.IPasswordHasher where TUser : class, IUser where TKey : IEquatable { diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 3a4c32cf59..7cc8ebd928 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -126,10 +126,6 @@ Constants.cs --> - - - - @@ -147,7 +143,6 @@ - @@ -177,7 +172,6 @@ - @@ -194,18 +188,11 @@ - - - - - - - @@ -268,8 +255,6 @@ - - @@ -402,51 +387,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -524,5 +464,10 @@ Umbraco.Infrastructure + + + + + \ No newline at end of file diff --git a/src/Umbraco.Core/Cache/DefaultRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs similarity index 100% rename from src/Umbraco.Core/Cache/DefaultRepositoryCachePolicy.cs rename to src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs diff --git a/src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/FullDataSetRepositoryCachePolicy.cs similarity index 100% rename from src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs rename to src/Umbraco.Infrastructure/Cache/FullDataSetRepositoryCachePolicy.cs diff --git a/src/Umbraco.Core/Cache/RepositoryCachePolicyBase.cs b/src/Umbraco.Infrastructure/Cache/RepositoryCachePolicyBase.cs similarity index 100% rename from src/Umbraco.Core/Cache/RepositoryCachePolicyBase.cs rename to src/Umbraco.Infrastructure/Cache/RepositoryCachePolicyBase.cs diff --git a/src/Umbraco.Core/Cache/SingleItemsOnlyRepositoryCachePolicy.cs b/src/Umbraco.Infrastructure/Cache/SingleItemsOnlyRepositoryCachePolicy.cs similarity index 100% rename from src/Umbraco.Core/Cache/SingleItemsOnlyRepositoryCachePolicy.cs rename to src/Umbraco.Infrastructure/Cache/SingleItemsOnlyRepositoryCachePolicy.cs diff --git a/src/Umbraco.Infrastructure/ContentExtensions.cs b/src/Umbraco.Infrastructure/ContentExtensions.cs new file mode 100644 index 0000000000..6bff40e306 --- /dev/null +++ b/src/Umbraco.Infrastructure/ContentExtensions.cs @@ -0,0 +1,31 @@ +using Umbraco.Core.Models; + +namespace Umbraco.Core +{ + public static class ContentExtensions + { + /// + /// Removes characters that are not valid XML characters from all entity properties + /// of type string. See: http://stackoverflow.com/a/961504/5018 + /// + /// + /// + /// If this is not done then the xml cache can get corrupt and it will throw YSODs upon reading it. + /// + /// + public static void SanitizeEntityPropertiesForXmlStorage(this IContentBase entity) + { + entity.Name = entity.Name.ToValidXmlString(); + foreach (var property in entity.Properties) + { + foreach (var propertyValue in property.Values) + { + if (propertyValue.EditedValue is string editString) + propertyValue.EditedValue = editString.ToValidXmlString(); + if (propertyValue.PublishedValue is string publishedString) + propertyValue.PublishedValue = publishedString.ToValidXmlString(); + } + } + } + } +} diff --git a/src/Umbraco.Core/ConventionsHelper.cs b/src/Umbraco.Infrastructure/ConventionsHelper.cs similarity index 100% rename from src/Umbraco.Core/ConventionsHelper.cs rename to src/Umbraco.Infrastructure/ConventionsHelper.cs diff --git a/src/Umbraco.Core/Models/Editors/UmbracoEntityReference.cs b/src/Umbraco.Infrastructure/Models/Editors/UmbracoEntityReference.cs similarity index 100% rename from src/Umbraco.Core/Models/Editors/UmbracoEntityReference.cs rename to src/Umbraco.Infrastructure/Models/Editors/UmbracoEntityReference.cs diff --git a/src/Umbraco.Core/Models/PathValidationExtensions.cs b/src/Umbraco.Infrastructure/Models/PathValidationExtensions.cs similarity index 100% rename from src/Umbraco.Core/Models/PathValidationExtensions.cs rename to src/Umbraco.Infrastructure/Models/PathValidationExtensions.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/AuditEntryRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditEntryRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/AuditEntryRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditEntryRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/AuditRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/AuditRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/AuditRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ConsentRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ConsentRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ConsentRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ConsentRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs index e038dd33b2..90f8d454ac 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentRepositoryBase.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs @@ -30,7 +30,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement public static bool ThrowOnWarning = false; } - internal abstract class ContentRepositoryBase : NPocoRepositoryBase, IContentRepository + public abstract class ContentRepositoryBase : NPocoRepositoryBase, IContentRepository where TEntity : class, IContentBase where TRepository : class, IRepository { diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepositoryBase.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeContainerRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeContainerRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeContainerRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DataTypeRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DataTypeRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DictionaryRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DictionaryRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DictionaryRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentBlueprintRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs index c6041e8f8c..a05e8cfe7f 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentRepository.cs @@ -21,7 +21,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// Represents a repository for doing CRUD operations for . /// - internal class DocumentRepository : ContentRepositoryBase, IDocumentRepository + public class DocumentRepository : ContentRepositoryBase, IDocumentRepository { private readonly IContentTypeRepository _contentTypeRepository; private readonly ITemplateRepository _templateRepository; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DocumentTypeContainerRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DomainRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DomainRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/DomainRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/DomainRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/EntityContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityContainerRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/EntityContainerRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityContainerRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/EntityRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/EntityRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs index bb1bd29a8a..6d6a654d4e 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ExternalLoginRepository.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.AspNet.Identity; using NPoco; using Umbraco.Core.Cache; using Umbraco.Core.Logging; @@ -152,7 +151,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement protected override void PersistUpdatedItem(IIdentityUserLogin entity) { entity.UpdatingEntity(); - + var dto = ExternalLoginFactory.BuildDto(entity); Database.Update(dto); diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/FileRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/FileRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/FileRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/FileRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/LanguageRepositoryExtensions.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MacroRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MacroRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MacroRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MacroRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs index c813bdaa5a..a48012ac26 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaRepository.cs @@ -21,7 +21,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// Represents a repository for doing CRUD operations for /// - internal class MediaRepository : ContentRepositoryBase, IMediaRepository + public class MediaRepository : ContentRepositoryBase, IMediaRepository { private readonly IMediaTypeRepository _mediaTypeRepository; private readonly ITagRepository _tagRepository; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeContainerRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MediaTypeRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MediaTypeRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberGroupRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberGroupRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs similarity index 98% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs index 5bf8ce4419..64266f9df8 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberRepository.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.AspNet.Identity; using NPoco; using Umbraco.Core.Cache; using Umbraco.Core.Logging; @@ -12,6 +11,7 @@ using Umbraco.Core.Persistence.Factories; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; +using Umbraco.Core.Security; using Umbraco.Core.Services; using static Umbraco.Core.Persistence.SqlExtensionsStatics; @@ -20,14 +20,16 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// Represents a repository for doing CRUD operations for /// - internal class MemberRepository : ContentRepositoryBase, IMemberRepository + public class MemberRepository : ContentRepositoryBase, IMemberRepository { private readonly IMemberTypeRepository _memberTypeRepository; private readonly ITagRepository _tagRepository; + private readonly IPasswordHasher _passwordHasher; private readonly IMemberGroupRepository _memberGroupRepository; public MemberRepository(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository, + IPasswordHasher passwordHasher, Lazy propertyEditors, DataValueReferenceFactoryCollection dataValueReferenceFactories, IDataTypeService dataTypeService) @@ -35,6 +37,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement { _memberTypeRepository = memberTypeRepository ?? throw new ArgumentNullException(nameof(memberTypeRepository)); _tagRepository = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository)); + _passwordHasher = passwordHasher; _memberGroupRepository = memberGroupRepository; } @@ -308,8 +311,8 @@ namespace Umbraco.Core.Persistence.Repositories.Implement // this will hash the guid with a salt so should be nicely random if (entity.RawPasswordValue.IsNullOrWhiteSpace()) { - var aspHasher = new PasswordHasher(); - dto.Password = Constants.Security.EmptyPasswordPrefix + aspHasher.HashPassword(Guid.NewGuid().ToString("N")); + + dto.Password = Constants.Security.EmptyPasswordPrefix + _passwordHasher.HashPassword(Guid.NewGuid().ToString("N")); entity.RawPasswordValue = dto.Password; } diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/MemberTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberTypeRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/MemberTypeRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberTypeRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs similarity index 96% rename from src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs index 23236ec9f0..d72eb9de9b 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/NPocoRepositoryBase.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NPocoRepositoryBase.cs @@ -15,7 +15,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// /// - internal abstract class NPocoRepositoryBase : RepositoryBase + public abstract class NPocoRepositoryBase : RepositoryBase where TEntity : class, IEntity { /// diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/NotificationsRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NotificationsRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/NotificationsRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/NotificationsRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewMacroRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewMacroRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewMacroRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewMacroRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/PartialViewRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PartialViewRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PermissionRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PermissionRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/PermissionRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PermissionRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/PublicAccessRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PublicAccessRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/PublicAccessRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/PublicAccessRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs similarity index 95% rename from src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs index 8b7ab9285a..7b44bd3955 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/QueryType.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/QueryType.cs @@ -3,7 +3,7 @@ /// /// Specifies the type of base query. /// - internal enum QueryType + public enum QueryType { /// /// Get one single complete item. diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RedirectUrlRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RedirectUrlRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/RedirectUrlRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RedirectUrlRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RelationRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/RelationRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RelationTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/RelationTypeRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs similarity index 98% rename from src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs index 69e4db5940..e8397ba22a 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryBaseOfTIdTEntity.cs @@ -14,7 +14,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// The type of the entity managed by this repository. /// The type of the entity's unique identifier. - internal abstract class RepositoryBase : IReadWriteQueryRepository + public abstract class RepositoryBase : IReadWriteQueryRepository where TEntity : class, IEntity { private IRepositoryCachePolicy _cachePolicy; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs similarity index 92% rename from src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs index 09a7c021f8..693656eb65 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/RepositoryCacheKeys.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RepositoryCacheKeys.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// Provides cache keys for repositories. /// - internal static class RepositoryCacheKeys + public static class RepositoryCacheKeys { private static readonly Dictionary Keys = new Dictionary(); diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs similarity index 94% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs index 22c3ff3067..498cf51432 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/ScriptRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ScriptRepository.cs @@ -2,8 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Umbraco.Core.Composing; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration; using Umbraco.Core.IO; using Umbraco.Core.Models; @@ -15,11 +14,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement internal class ScriptRepository : FileRepository, IScriptRepository { private readonly IIOHelper _ioHelper; + private readonly IGlobalSettings _globalSettings; - public ScriptRepository(IFileSystems fileSystems, IIOHelper ioHelper) + public ScriptRepository(IFileSystems fileSystems, IIOHelper ioHelper, IGlobalSettings globalSettings) : base(fileSystems.ScriptsFileSystem) { _ioHelper = ioHelper ?? throw new ArgumentNullException(nameof(ioHelper)); + _globalSettings = globalSettings; } #region Implementation of IRepository @@ -104,7 +105,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement } // validate path & extension - var validDir = Current.Configs.Global().UmbracoScriptsPath; + var validDir = _globalSettings.UmbracoScriptsPath; var isValidPath = _ioHelper.VerifyEditPath(fullPath, validDir); var validExts = new[] {"js"}; var isValidExtension = _ioHelper.VerifyFileExtension(script.Path, validExts); diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ServerRegistrationRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/ServerRegistrationRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ServerRegistrationRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/SimilarNodeName.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimilarNodeName.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/SimilarNodeName.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimilarNodeName.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/SimpleGetRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimpleGetRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/SimpleGetRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/SimpleGetRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs similarity index 95% rename from src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs index dc60c332cd..c1fb5c3159 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/StylesheetRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/StylesheetRepository.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Umbraco.Core.Composing; +using Umbraco.Core.Configuration; using Umbraco.Core.IO; using Umbraco.Core.Models; @@ -13,11 +13,13 @@ namespace Umbraco.Core.Persistence.Repositories.Implement internal class StylesheetRepository : FileRepository, IStylesheetRepository { private readonly IIOHelper _ioHelper; + private readonly IGlobalSettings _globalSettings; - public StylesheetRepository(IFileSystems fileSystems, IIOHelper ioHelper) + public StylesheetRepository(IFileSystems fileSystems, IIOHelper ioHelper, IGlobalSettings globalSettings) : base(fileSystems.StylesheetsFileSystem) { _ioHelper = ioHelper; + _globalSettings = globalSettings; } #region Overrides of FileRepository @@ -121,7 +123,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement } // validate path and extension - var validDir = Current.Configs.Global().UmbracoCssPath; + var validDir = _globalSettings.UmbracoCssPath; var isValidPath = _ioHelper.VerifyEditPath(fullPath, validDir); var isValidExtension = _ioHelper.VerifyFileExtension(stylesheet.Path, ValidExtensions); return isValidPath && isValidExtension; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TagRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/TagRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs index a26b818ca9..3db94b026e 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/TemplateRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Text; using NPoco; using Umbraco.Core.Cache; -using Umbraco.Core.Composing; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models; @@ -635,7 +634,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement private void EnsureValidAlias(ITemplate template) { //ensure unique alias - template.Alias = template.Alias.ToCleanString(CleanStringType.UnderscoreAlias); + template.Alias = template.Alias.ToCleanString(_shortStringHelper, CleanStringType.UnderscoreAlias); if (template.Alias.Length > 100) template.Alias = template.Alias.Substring(0, 95); diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/TupleExtensions.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TupleExtensions.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/TupleExtensions.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TupleExtensions.cs diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs similarity index 99% rename from src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs index b8e4a67d78..1f0ab0cbe7 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Implement/UserGroupRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserGroupRepository.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using NPoco; using Umbraco.Core.Cache; -using Umbraco.Core.Exceptions; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; @@ -19,7 +18,7 @@ namespace Umbraco.Core.Persistence.Repositories.Implement /// /// Represents the UserGroupRepository for doing CRUD operations for /// - internal class UserGroupRepository : NPocoRepositoryBase, IUserGroupRepository + public class UserGroupRepository : NPocoRepositoryBase, IUserGroupRepository { private readonly IShortStringHelper _shortStringHelper; private readonly UserGroupWithUsersRepository _userGroupWithUsersRepository; diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs similarity index 100% rename from src/Umbraco.Core/Persistence/Repositories/Implement/UserRepository.cs rename to src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs diff --git a/src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollection.cs b/src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollection.cs similarity index 100% rename from src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollection.cs rename to src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollection.cs diff --git a/src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs b/src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs similarity index 100% rename from src/Umbraco.Core/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs rename to src/Umbraco.Infrastructure/PropertyEditors/DataValueReferenceFactoryCollectionBuilder.cs diff --git a/src/Umbraco.Core/PropertyEditors/IDataValueReference.cs b/src/Umbraco.Infrastructure/PropertyEditors/IDataValueReference.cs similarity index 100% rename from src/Umbraco.Core/PropertyEditors/IDataValueReference.cs rename to src/Umbraco.Infrastructure/PropertyEditors/IDataValueReference.cs diff --git a/src/Umbraco.Core/PropertyEditors/IDataValueReferenceFactory.cs b/src/Umbraco.Infrastructure/PropertyEditors/IDataValueReferenceFactory.cs similarity index 100% rename from src/Umbraco.Core/PropertyEditors/IDataValueReferenceFactory.cs rename to src/Umbraco.Infrastructure/PropertyEditors/IDataValueReferenceFactory.cs diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs index a1bca7fc89..b8c823f59e 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs @@ -41,7 +41,7 @@ namespace Umbraco.Tests.Persistence.Repositories var relationRepository = new RelationRepository(accessor, Logger, relationTypeRepository, entityRepository); var propertyEditors = new Lazy(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty()))); var dataValueReferences = new DataValueReferenceFactoryCollection(Enumerable.Empty()); - var repository = new MemberRepository(accessor, AppCaches.Disabled, Logger, memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of(), relationRepository, relationTypeRepository, propertyEditors, dataValueReferences, DataTypeService); + var repository = new MemberRepository(accessor, AppCaches.Disabled, Logger, memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of(), relationRepository, relationTypeRepository, PasswordHasher, propertyEditors, dataValueReferences, DataTypeService); return repository; } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index 8d7a166f26..a319f8d63b 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -40,7 +40,7 @@ namespace Umbraco.Tests.Persistence.Repositories private IScriptRepository CreateRepository() { - return new ScriptRepository(_fileSystems, IOHelper); + return new ScriptRepository(_fileSystems, IOHelper, TestObjects.GetGlobalSettings()); } protected override void Compose() diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index c2fbb63442..70e7b664a1 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -37,7 +37,7 @@ namespace Umbraco.Tests.Persistence.Repositories private IStylesheetRepository CreateRepository() { - return new StylesheetRepository(_fileSystems, IOHelper); + return new StylesheetRepository(_fileSystems, IOHelper, TestObjects.GetGlobalSettings()); } [Test] diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index 5afd937f84..ea13a25bbd 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -52,6 +52,7 @@ using Umbraco.Web.Templates; using Umbraco.Web.PropertyEditors; using Umbraco.Core.Dictionary; using Umbraco.Core.Persistence.Repositories; +using Umbraco.Core.Security; using Umbraco.Core.Services; using Umbraco.Net; @@ -114,6 +115,7 @@ namespace Umbraco.Tests.Testing protected IIOHelper IOHelper { get; private set; } protected IDataTypeService DataTypeService => Factory.GetInstance(); + protected IPasswordHasher PasswordHasher => Factory.GetInstance(); protected Lazy PropertyEditorCollection => new Lazy(() => Factory.GetInstance()); protected ILocalizationService LocalizationService => Factory.GetInstance(); protected ILocalizedTextService LocalizedTextService { get; private set; } @@ -193,6 +195,7 @@ namespace Umbraco.Tests.Testing Composition.RegisterUnique(hostingEnvironment); Composition.RegisterUnique(backOfficeInfo); Composition.RegisterUnique(ipResolver); + Composition.RegisterUnique(); TestObjects = new TestObjects(register); Compose(); diff --git a/src/Umbraco.Web/AspNetBackOfficeInfo.cs b/src/Umbraco.Web/Net/AspNetBackOfficeInfo.cs similarity index 100% rename from src/Umbraco.Web/AspNetBackOfficeInfo.cs rename to src/Umbraco.Web/Net/AspNetBackOfficeInfo.cs diff --git a/src/Umbraco.Web/AspNetHttpContextAccessor.cs b/src/Umbraco.Web/Net/AspNetHttpContextAccessor.cs similarity index 100% rename from src/Umbraco.Web/AspNetHttpContextAccessor.cs rename to src/Umbraco.Web/Net/AspNetHttpContextAccessor.cs diff --git a/src/Umbraco.Web/AspNetIpResolver.cs b/src/Umbraco.Web/Net/AspNetIpResolver.cs similarity index 100% rename from src/Umbraco.Web/AspNetIpResolver.cs rename to src/Umbraco.Web/Net/AspNetIpResolver.cs diff --git a/src/Umbraco.Web/Net/AspNetPasswordHasher.cs b/src/Umbraco.Web/Net/AspNetPasswordHasher.cs new file mode 100644 index 0000000000..0f9ff1981c --- /dev/null +++ b/src/Umbraco.Web/Net/AspNetPasswordHasher.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNet.Identity; +using IPasswordHasher = Umbraco.Core.Security.IPasswordHasher; + +namespace Umbraco.Web +{ + public class AspNetPasswordHasher : IPasswordHasher + { + private PasswordHasher _underlyingHasher; + + public AspNetPasswordHasher() + { + _underlyingHasher = new PasswordHasher(); + } + + public string HashPassword(string password) + { + return _underlyingHasher.HashPassword(password); + } + } +} diff --git a/src/Umbraco.Web/AspNetSessionIdResolver.cs b/src/Umbraco.Web/Net/AspNetSessionIdResolver.cs similarity index 100% rename from src/Umbraco.Web/AspNetSessionIdResolver.cs rename to src/Umbraco.Web/Net/AspNetSessionIdResolver.cs diff --git a/src/Umbraco.Web/Runtime/WebInitialComposer.cs b/src/Umbraco.Web/Runtime/WebInitialComposer.cs index fb7ba352b6..9b36012ca2 100644 --- a/src/Umbraco.Web/Runtime/WebInitialComposer.cs +++ b/src/Umbraco.Web/Runtime/WebInitialComposer.cs @@ -13,6 +13,7 @@ using Umbraco.Core.Migrations.PostMigrations; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.PropertyEditors.ValueConverters; using Umbraco.Core.Runtime; +using Umbraco.Core.Security; using Umbraco.Core.Services; using Umbraco.Net; using Umbraco.Web.Actions; @@ -57,6 +58,7 @@ namespace Umbraco.Web.Runtime composition.Register(); composition.Register(); composition.Register(); + composition.Register(); composition.RegisterUnique(); // required for hybrid accessors diff --git a/src/Umbraco.Web/Security/BackOfficeUserManager.cs b/src/Umbraco.Web/Security/BackOfficeUserManager.cs index c644f5e428..688447e52a 100644 --- a/src/Umbraco.Web/Security/BackOfficeUserManager.cs +++ b/src/Umbraco.Web/Security/BackOfficeUserManager.cs @@ -1,7 +1,6 @@ using System; using System.Security.Claims; using System.Threading.Tasks; -using System.Web; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.Owin; using Microsoft.Owin.Security.DataProtection; @@ -13,6 +12,7 @@ using Umbraco.Core.Models.Identity; using Umbraco.Core.Security; using Umbraco.Core.Services; using Umbraco.Net; +using IPasswordHasher = Microsoft.AspNet.Identity.IPasswordHasher; namespace Umbraco.Web.Security { diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 73694fbc28..d792ad84a3 100755 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -130,9 +130,6 @@ - - - @@ -174,7 +171,6 @@ - @@ -254,6 +250,11 @@ + + + + +