https://dev.azure.com/umbraco/D-Team%20Tracker/_workitems/edit/6586 - removed old OutgoingEditorModelEventAttribute and EditorModelEventManager
This commit is contained in:
@@ -146,10 +146,11 @@ namespace Umbraco.Web.Editors
|
||||
"redirectUrlManagementApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl<RedirectUrlManagementController>(
|
||||
controller => controller.GetEnableState())
|
||||
},
|
||||
{
|
||||
"tourApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl<TourController>(
|
||||
controller => controller.GetTours())
|
||||
},
|
||||
//TODO reintroduce
|
||||
// {
|
||||
// "tourApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl<TourController>(
|
||||
// controller => controller.GetTours())
|
||||
// },
|
||||
{
|
||||
"embedApiBaseUrl", _urlHelper.GetUmbracoApiServiceBaseUrl<RteEmbedController>(
|
||||
controller => controller.GetEmbed("", 0, 0))
|
||||
|
||||
@@ -303,7 +303,7 @@ namespace Umbraco.Web.Editors
|
||||
/// <param name="id"></param>
|
||||
/// <param name="culture"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForContent("id")]
|
||||
public ContentItemDisplay GetById(int id)
|
||||
{
|
||||
@@ -322,7 +322,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForContent("id")]
|
||||
public ContentItemDisplay GetById(Guid id)
|
||||
{
|
||||
@@ -342,7 +342,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForContent("id")]
|
||||
public ContentItemDisplay GetById(Udi id)
|
||||
{
|
||||
@@ -360,7 +360,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="contentTypeAlias"></param>
|
||||
/// <param name="parentId"></param>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public ContentItemDisplay GetEmpty(string contentTypeAlias, int parentId)
|
||||
{
|
||||
var contentType = Services.ContentTypeService.Get(contentTypeAlias);
|
||||
@@ -383,7 +383,7 @@ namespace Umbraco.Web.Editors
|
||||
return mapped;
|
||||
}
|
||||
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public ContentItemDisplay GetEmpty(int blueprintId, int parentId)
|
||||
{
|
||||
var blueprint = Services.ContentService.GetBlueprintById(blueprintId);
|
||||
@@ -608,7 +608,7 @@ namespace Umbraco.Web.Editors
|
||||
/// <returns></returns>
|
||||
[FileUploadCleanupFilter]
|
||||
[ContentSaveValidation]
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public ContentItemDisplay PostSave([ModelBinder(typeof(ContentItemBinder))] ContentItemSave contentItem)
|
||||
{
|
||||
var contentItemDisplay = PostSaveInternal(
|
||||
@@ -1629,7 +1629,7 @@ namespace Umbraco.Web.Editors
|
||||
/// <param name="model">The content and variants to unpublish</param>
|
||||
/// <returns></returns>
|
||||
[EnsureUserPermissionForContent("model.Id", 'Z')]
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public ContentItemDisplay PostUnpublish(UnpublishContent model)
|
||||
{
|
||||
var foundContent = GetObjectFromRequest(() => Services.ContentService.GetById(model.Id));
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Http.Filters;
|
||||
using Umbraco.Core.Dashboards;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
|
||||
namespace Umbraco.Web.Editors
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to emit events for editor models in the back office
|
||||
/// </summary>
|
||||
public sealed class EditorModelEventManager
|
||||
{
|
||||
public static event TypedEventHandler<HttpActionExecutedContext, EditorModelEventArgs<ContentItemDisplay>> SendingContentModel;
|
||||
public static event TypedEventHandler<HttpActionExecutedContext, EditorModelEventArgs<MediaItemDisplay>> SendingMediaModel;
|
||||
public static event TypedEventHandler<HttpActionExecutedContext, EditorModelEventArgs<MemberDisplay>> SendingMemberModel;
|
||||
public static event TypedEventHandler<HttpActionExecutedContext, EditorModelEventArgs<UserDisplay>> SendingUserModel;
|
||||
|
||||
public static event TypedEventHandler<HttpActionExecutedContext, EditorModelEventArgs<IEnumerable<Tab<IDashboardSlim>>>> SendingDashboardSlimModel;
|
||||
|
||||
private static void OnSendingDashboardModel(HttpActionExecutedContext sender, EditorModelEventArgs<IEnumerable<Tab<IDashboardSlim>>> e)
|
||||
{
|
||||
var handler = SendingDashboardSlimModel;
|
||||
handler?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
private static void OnSendingUserModel(HttpActionExecutedContext sender, EditorModelEventArgs<UserDisplay> e)
|
||||
{
|
||||
var handler = SendingUserModel;
|
||||
handler?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
private static void OnSendingContentModel(HttpActionExecutedContext sender, EditorModelEventArgs<ContentItemDisplay> e)
|
||||
{
|
||||
var handler = SendingContentModel;
|
||||
handler?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
private static void OnSendingMediaModel(HttpActionExecutedContext sender, EditorModelEventArgs<MediaItemDisplay> e)
|
||||
{
|
||||
var handler = SendingMediaModel;
|
||||
handler?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
private static void OnSendingMemberModel(HttpActionExecutedContext sender, EditorModelEventArgs<MemberDisplay> e)
|
||||
{
|
||||
var handler = SendingMemberModel;
|
||||
handler?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Based on the type, emit's a specific event
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
internal static void EmitEvent(HttpActionExecutedContext sender, EditorModelEventArgs e)
|
||||
{
|
||||
if (e.Model is ContentItemDisplay)
|
||||
OnSendingContentModel(sender, new EditorModelEventArgs<ContentItemDisplay>(e));
|
||||
|
||||
if (e.Model is MediaItemDisplay)
|
||||
OnSendingMediaModel(sender, new EditorModelEventArgs<MediaItemDisplay>(e));
|
||||
|
||||
if (e.Model is MemberDisplay)
|
||||
OnSendingMemberModel(sender, new EditorModelEventArgs<MemberDisplay>(e));
|
||||
|
||||
if (e.Model is UserDisplay)
|
||||
OnSendingUserModel(sender, new EditorModelEventArgs<UserDisplay>(e));
|
||||
|
||||
if (e.Model is IEnumerable<Tab<IDashboardSlim>>)
|
||||
OnSendingDashboardModel(sender, new EditorModelEventArgs<IEnumerable<Tab<IDashboardSlim>>>(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,7 +96,7 @@ namespace Umbraco.Web.Editors
|
||||
/// <param name="contentTypeAlias"></param>
|
||||
/// <param name="parentId"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public MediaItemDisplay GetEmpty(string contentTypeAlias, int parentId)
|
||||
{
|
||||
var contentType = Services.MediaTypeService.Get(contentTypeAlias);
|
||||
@@ -144,7 +144,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForMedia("id")]
|
||||
public MediaItemDisplay GetById(int id)
|
||||
{
|
||||
@@ -164,7 +164,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForMedia("id")]
|
||||
public MediaItemDisplay GetById(Guid id)
|
||||
{
|
||||
@@ -184,7 +184,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[EnsureUserPermissionForMedia("id")]
|
||||
public MediaItemDisplay GetById(Udi id)
|
||||
{
|
||||
@@ -475,7 +475,7 @@ namespace Umbraco.Web.Editors
|
||||
/// <returns></returns>
|
||||
[FileUploadCleanupFilter]
|
||||
[MediaItemSaveValidation]
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public MediaItemDisplay PostSave(
|
||||
[ModelBinder(typeof(MediaItemBinder))]
|
||||
MediaItemSave contentItem)
|
||||
|
||||
@@ -135,7 +135,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public MemberDisplay GetByKey(Guid key)
|
||||
{
|
||||
var foundMember = Services.MemberService.GetByKey(key);
|
||||
@@ -151,7 +151,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="contentTypeAlias"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public MemberDisplay GetEmpty(string contentTypeAlias = null)
|
||||
{
|
||||
IMember emptyContent;
|
||||
@@ -178,7 +178,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[FileUploadCleanupFilter]
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[MemberSaveValidation]
|
||||
public async Task<MemberDisplay> PostSave(
|
||||
[ModelBinder(typeof(MemberBinder))]
|
||||
|
||||
@@ -199,7 +199,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
[AdminUsersAuthorize]
|
||||
public UserDisplay GetById(int id)
|
||||
{
|
||||
@@ -521,7 +521,7 @@ namespace Umbraco.Web.Editors
|
||||
/// </summary>
|
||||
/// <param name="userSave"></param>
|
||||
/// <returns></returns>
|
||||
[OutgoingEditorModelEvent]
|
||||
// [OutgoingEditorModelEvent] // TODO introduce when moved to .NET Core
|
||||
public async Task<UserDisplay> PostSaveUser(UserSave userSave)
|
||||
{
|
||||
if (userSave == null) throw new ArgumentNullException("userSave");
|
||||
|
||||
@@ -155,7 +155,6 @@
|
||||
<Compile Include="WebAssets\CDF\ClientDependencyRuntimeMinifier.cs" />
|
||||
<Compile Include="Models\NoNodesViewModel.cs" />
|
||||
<Compile Include="Mvc\RenderNoContentController.cs" />
|
||||
<Compile Include="Editors\EditorModelEventManager.cs" />
|
||||
<Compile Include="Editors\Filters\ContentSaveModelValidator.cs" />
|
||||
<Compile Include="Editors\Filters\DataTypeValidateAttribute.cs" />
|
||||
<Compile Include="Editors\Filters\MediaSaveModelValidator.cs" />
|
||||
@@ -399,7 +398,6 @@
|
||||
<Compile Include="WebApi\Filters\DisableBrowserCacheAttribute.cs" />
|
||||
<Compile Include="WebApi\Filters\EnableOverrideAuthorizationAttribute.cs" />
|
||||
<Compile Include="WebApi\Filters\FilterGrouping.cs" />
|
||||
<Compile Include="WebApi\Filters\OutgoingEditorModelEventAttribute.cs" />
|
||||
<Compile Include="WebApi\Filters\OutgoingNoHyphenGuidFormatAttribute.cs" />
|
||||
<Compile Include="WebApi\Filters\OverridableAuthorizationAttribute.cs" />
|
||||
<Compile Include="WebApi\Filters\SetAngularAntiForgeryTokensAttribute.cs" />
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http.Filters;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Composing;
|
||||
using Umbraco.Web.Editors;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
|
||||
namespace Umbraco.Web.WebApi.Filters
|
||||
{
|
||||
/// <summary>
|
||||
/// Used to emit outgoing editor model events
|
||||
/// </summary>
|
||||
internal sealed class OutgoingEditorModelEventAttribute : ActionFilterAttribute
|
||||
{
|
||||
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
|
||||
{
|
||||
if (actionExecutedContext.Response == null) return;
|
||||
|
||||
var user = Current.UmbracoContext.Security.CurrentUser;
|
||||
if (user == null) return;
|
||||
|
||||
if (actionExecutedContext.Response.Content is ObjectContent objectContent)
|
||||
{
|
||||
var model = objectContent.Value;
|
||||
|
||||
if (model != null)
|
||||
{
|
||||
var args = new EditorModelEventArgs(
|
||||
model,
|
||||
Current.UmbracoContext);
|
||||
EditorModelEventManager.EmitEvent(actionExecutedContext, args);
|
||||
objectContent.Value = args.Model;
|
||||
}
|
||||
}
|
||||
|
||||
base.OnActionExecuted(actionExecutedContext);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user