Moved Editor stuff that was not controllers

This commit is contained in:
Bjarke Berg
2020-02-19 13:33:04 +01:00
parent 9f5da7f5a8
commit e69ef327a9
13 changed files with 33 additions and 54 deletions
@@ -8,7 +8,7 @@ using Umbraco.Core.Services;
namespace Umbraco.Web.Editors
{
internal class UserEditorAuthorizationHelper
public class UserEditorAuthorizationHelper
{
private readonly IContentService _contentService;
private readonly IMediaService _mediaService;
@@ -68,8 +68,9 @@ namespace Umbraco.Web.Editors
IShortStringHelper shortStringHelper,
UmbracoMapper umbracoMapper,
IIOHelper ioHelper,
IPublishedUrlProvider publishedUrlProvider)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider)
IPublishedUrlProvider publishedUrlProvider,
EditorValidatorCollection editorValidatorCollection)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection)
{
_serializer = serializer;
_globalSettings = globalSettings;
@@ -5,6 +5,7 @@ using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration;
@@ -31,6 +32,8 @@ namespace Umbraco.Web.Editors
public abstract class ContentTypeControllerBase<TContentType> : UmbracoAuthorizedJsonController
where TContentType : class, IContentTypeComposition
{
private readonly EditorValidatorCollection _editorValidatorCollection;
protected ContentTypeControllerBase(
ICultureDictionary cultureDictionary,
IGlobalSettings globalSettings,
@@ -43,9 +46,11 @@ namespace Umbraco.Web.Editors
UmbracoHelper umbracoHelper,
IShortStringHelper shortStringHelper,
UmbracoMapper umbracoMapper,
IPublishedUrlProvider publishedUrlProvider)
IPublishedUrlProvider publishedUrlProvider,
EditorValidatorCollection editorValidatorCollection)
: base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider)
{
_editorValidatorCollection = editorValidatorCollection;
CultureDictionary = cultureDictionary;
}
@@ -272,7 +277,7 @@ namespace Umbraco.Web.Editors
}
// execute the external validators
EditorValidator.Validate(ModelState, contentTypeSave);
ValidateExternalValidators(ModelState, contentTypeSave);
if (ModelState.IsValid == false)
{
@@ -364,6 +369,20 @@ namespace Umbraco.Web.Editors
}
}
private void ValidateExternalValidators(ModelStateDictionary modelState, object model)
{
var modelType = model.GetType();
var validationResults = _editorValidatorCollection
.Where(x => x.ModelType == modelType)
.SelectMany(x => x.Validate(model))
.Where(x => !string.IsNullOrWhiteSpace(x.ErrorMessage) && x.MemberNames.Any());
foreach (var r in validationResults)
foreach (var m in r.MemberNames)
modelState.AddModelError(m, r.ErrorMessage);
}
/// <summary>
/// Move
/// </summary>
@@ -1,29 +0,0 @@
using System.Linq;
using System.Web.Http.ModelBinding;
using Umbraco.Web.Composing;
namespace Umbraco.Web.Editors
{
/// <summary>
/// Provides a method to validate an object using <see cref="IEditorValidator"/> validation.
/// </summary>
internal static class EditorValidator
{
/// <summary>
/// Validates an object.
/// </summary>
public static void Validate(ModelStateDictionary modelState, object model)
{
var modelType = model.GetType();
var validationResults = Current.EditorValidators // TODO: inject
.Where(x => x.ModelType == modelType)
.SelectMany(x => x.Validate(model))
.Where(x => !string.IsNullOrWhiteSpace(x.ErrorMessage) && x.MemberNames.Any());
foreach (var r in validationResults)
foreach (var m in r.MemberNames)
modelState.AddModelError(m, r.ErrorMessage);
}
}
}
@@ -55,8 +55,9 @@ namespace Umbraco.Web.Editors
IShortStringHelper shortStringHelper,
UmbracoMapper umbracoMapper,
IEntityService entityService,
IPublishedUrlProvider publishedUrlProvider)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider)
IPublishedUrlProvider publishedUrlProvider,
EditorValidatorCollection editorValidatorCollection)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection)
{
_shortStringHelper = shortStringHelper;
_entityService = entityService ?? throw new ArgumentNullException(nameof(entityService));
@@ -42,8 +42,9 @@ namespace Umbraco.Web.Editors
UmbracoHelper umbracoHelper,
IShortStringHelper shortStringHelper,
UmbracoMapper umbracoMapper,
IPublishedUrlProvider publishedUrlProvider)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider)
IPublishedUrlProvider publishedUrlProvider,
EditorValidatorCollection editorValidatorCollection)
: base(cultureDictionary, globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper, shortStringHelper, umbracoMapper, publishedUrlProvider, editorValidatorCollection)
{
}
+2 -16
View File
@@ -141,7 +141,9 @@
<Compile Include="Composing\CompositionExtensions\Installer.cs" />
<Compile Include="Composing\LightInject\LightInjectContainer.cs" />
<Compile Include="Editors\BackOfficePreviewModel.cs" />
<Compile Include="Editors\EditorModelEventManager.cs" />
<Compile Include="Editors\Filters\ContentSaveModelValidator.cs" />
<Compile Include="Editors\Filters\DataTypeValidateAttribute.cs" />
<Compile Include="Editors\Filters\MediaSaveModelValidator.cs" />
<Compile Include="Editors\ImageUrlGeneratorController.cs" />
<Compile Include="Editors\PackageController.cs" />
@@ -149,8 +151,6 @@
<Compile Include="Editors\MacrosController.cs" />
<Compile Include="Editors\RelationTypeController.cs" />
<Compile Include="Editors\TinyMceController.cs" />
<Compile Include="FrameworkMarchal.cs" />
<Compile Include="Hosting\AspNetHostingEnvironment.cs" />
<Compile Include="HttpContextAccessorExtensions.cs" />
<Compile Include="HttpContextExtensions.cs" />
<Compile Include="ImageCropperTemplateCoreExtensions.cs" />
@@ -195,11 +195,6 @@
<Compile Include="Runtime\AspNetUmbracoBootPermissionChecker.cs" />
<Compile Include="Scheduling\SchedulerComponent.cs" />
<Compile Include="Scheduling\SchedulerComposer.cs" />
<Compile Include="Security\CurrentUserAccessor.cs" />
<Compile Include="Search\BackgroundIndexRebuilder.cs" />
<Compile Include="Search\ExamineFinalComponent.cs" />
<Compile Include="Search\ExamineFinalComposer.cs" />
<Compile Include="Search\ExamineUserComponent.cs" />
<Compile Include="Security\BackOfficeUserStore.cs" />
<Compile Include="Security\BackOfficeUserValidator.cs" />
<Compile Include="Security\ConfiguredPasswordValidator.cs" />
@@ -258,10 +253,6 @@
<Compile Include="WebApi\TrimModelBinder.cs" />
<Compile Include="Editors\CodeFileController.cs" />
<Compile Include="Editors\DictionaryController.cs" />
<Compile Include="Editors\EditorModelEventArgs.cs" />
<Compile Include="Editors\EditorValidatorCollection.cs" />
<Compile Include="Editors\EditorValidatorCollectionBuilder.cs" />
<Compile Include="Editors\EditorValidatorOfT.cs" />
<Compile Include="Editors\Filters\MemberSaveModelValidator.cs" />
<Compile Include="Editors\ExamineManagementController.cs" />
<Compile Include="Editors\FromJsonPathAttribute.cs" />
@@ -273,7 +264,6 @@
<Compile Include="Editors\PreviewController.cs" />
<Compile Include="Editors\TemplateController.cs" />
<Compile Include="Editors\TourController.cs" />
<Compile Include="Editors\UserEditorAuthorizationHelper.cs" />
<Compile Include="Editors\Filters\UserGroupAuthorizationAttribute.cs" />
<Compile Include="Editors\Filters\UserGroupEditorAuthorizationHelper.cs" />
<Compile Include="Editors\UserGroupsController.cs" />
@@ -288,14 +278,11 @@
<Compile Include="Install\InstallSteps\ConfigureMachineKey.cs" />
<Compile Include="Editors\MemberGroupController.cs" />
<Compile Include="Composing\CompositionExtensions\Controllers.cs" />
<Compile Include="Editors\EditorValidator.cs" />
<Compile Include="Macros\MacroContent.cs" />
<Compile Include="Macros\MacroModel.cs" />
<Compile Include="HealthCheck\HealthCheckController.cs" />
<Compile Include="Macros\MacroPropertyModel.cs" />
<Compile Include="Macros\MacroRenderer.cs" />
<Compile Include="Editors\IEditorValidator.cs" />
<Compile Include="Editors\EditorModelEventManager.cs" />
<Compile Include="HtmlHelperBackOfficeExtensions.cs" />
<Compile Include="Composing\ModuleInjector.cs" />
<Compile Include="Mvc\FilteredControllerFactoryCollection.cs" />
@@ -375,7 +362,6 @@
<Compile Include="Editors\ContentTypeControllerBase.cs" />
<Compile Include="Editors\DashboardController.cs" />
<Compile Include="Editors\DataTypeController.cs" />
<Compile Include="Editors\DataTypeValidateAttribute.cs" />
<Compile Include="Editors\ImagesController.cs" />
<Compile Include="Editors\PackageInstallController.cs" />
<Compile Include="Editors\RelationController.cs" />