From 4803b4303d766836ade21c129efa0f290f1a9a1e Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Sun, 9 Mar 2025 08:51:18 +0100 Subject: [PATCH 1/6] bumped imagesharp to prevent CVE-2025-27598 (#18602) # Conflicts: # Directory.Packages.props --- Directory.Packages.props | 2 +- .../Umbraco.Cms.Imaging.ImageSharp2.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7500909666..1b350a789e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -73,7 +73,7 @@ - + diff --git a/src/Umbraco.Cms.Imaging.ImageSharp2/Umbraco.Cms.Imaging.ImageSharp2.csproj b/src/Umbraco.Cms.Imaging.ImageSharp2/Umbraco.Cms.Imaging.ImageSharp2.csproj index 16bac191d5..7563b27d74 100644 --- a/src/Umbraco.Cms.Imaging.ImageSharp2/Umbraco.Cms.Imaging.ImageSharp2.csproj +++ b/src/Umbraco.Cms.Imaging.ImageSharp2/Umbraco.Cms.Imaging.ImageSharp2.csproj @@ -4,7 +4,7 @@ Adds imaging support using ImageSharp/ImageSharp.Web version 2 to Umbraco CMS. - + From e8e1b6ef33b6a9ef58eb497c59ea8b2b84858c6f Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Tue, 11 Mar 2025 05:11:36 +0100 Subject: [PATCH 2/6] Merge commit from fork * Tighten management API endpoint access rules. * Bumped version to 15.2.1. --- .../Controllers/DataType/CopyDataTypeController.cs | 3 +++ .../Controllers/DataType/CreateDataTypeController.cs | 5 ++++- .../Controllers/DataType/DeleteDataTypeController.cs | 5 ++++- .../Controllers/DataType/MoveDataTypeController.cs | 3 +++ .../Controllers/DataType/UpdateDataTypeController.cs | 5 ++++- .../Controllers/DocumentType/ExportDocumentTypeController.cs | 3 +++ .../DocumentType/ImportExistingDocumentTypeController.cs | 4 +++- .../DocumentType/ImportNewDocumentTypeController.cs | 4 +++- .../Controllers/MediaType/ExportMediaTypeController.cs | 3 +++ .../MediaType/ImportExistingMediaTypeController.cs | 4 +++- .../Controllers/MediaType/ImportNewMediaTypeController.cs | 5 +++-- .../Controllers/MediaType/MediaTypeControllerBase.cs | 3 +-- 12 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs index 2bafe73532..6bf47269d5 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CopyDataTypeController.cs @@ -1,4 +1,5 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.ViewModels.DataType; @@ -7,10 +8,12 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DataType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDataTypes)] public class CopyDataTypeController : DataTypeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs index 9275e25001..1acea39696 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/CreateDataTypeController.cs @@ -1,4 +1,5 @@ -using Asp.Versioning; +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Factories; @@ -8,10 +9,12 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DataType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDataTypes)] public class CreateDataTypeController : DataTypeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs index aed80dc5fe..ba6cb63d8f 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/DeleteDataTypeController.cs @@ -1,4 +1,5 @@ -using Asp.Versioning; +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core; @@ -6,10 +7,12 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DataType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDataTypes)] public class DeleteDataTypeController : DataTypeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs index bec84124b5..e8f5230463 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/MoveDataTypeController.cs @@ -1,4 +1,5 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.ViewModels.DataType; @@ -7,10 +8,12 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DataType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDataTypes)] public class MoveDataTypeController : DataTypeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs index 71afc06b26..4b67b55653 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DataType/UpdateDataTypeController.cs @@ -1,4 +1,5 @@ -using Asp.Versioning; +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Factories; @@ -8,10 +9,12 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DataType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDataTypes)] public class UpdateDataTypeController : DataTypeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs index d0c66d0599..4d2eba27eb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ExportDocumentTypeController.cs @@ -1,14 +1,17 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Factories; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DocumentType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentTypes)] public class ExportDocumentTypeController : DocumentTypeControllerBase { private readonly IContentTypeService _contentTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs index 9b1d6506a1..46f28d3665 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportExistingDocumentTypeController.cs @@ -1,17 +1,19 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.ViewModels.DocumentType; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services.ImportExport; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DocumentType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentTypes)] public class ImportExistingDocumentTypeController : DocumentTypeControllerBase { private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs index 5b4fbde199..9b0cb2af0d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/DocumentType/ImportNewDocumentTypeController.cs @@ -1,17 +1,19 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.ViewModels.DocumentType; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services.ImportExport; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.DocumentType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessDocumentTypes)] public class ImportNewDocumentTypeController : DocumentTypeControllerBase { private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs index 12f8540a4e..40423c3b1d 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ExportMediaTypeController.cs @@ -1,14 +1,17 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Factories; using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.MediaType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessMediaTypes)] public class ExportMediaTypeController : MediaTypeControllerBase { private readonly IMediaTypeService _mediaTypeService; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs index 9c4ba5ed95..9aedac01e4 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportExistingMediaTypeController.cs @@ -1,17 +1,19 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.ViewModels.MediaType; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services.ImportExport; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.MediaType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessMediaTypes)] public class ImportExistingMediaTypeController : MediaTypeControllerBase { private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs index 868822e494..e71e2b2abb 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/ImportNewMediaTypeController.cs @@ -1,18 +1,19 @@ using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Api.Management.Controllers.DocumentType; using Umbraco.Cms.Api.Management.ViewModels.MediaType; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; -using Umbraco.Cms.Core.Models.Membership; using Umbraco.Cms.Core.Security; using Umbraco.Cms.Core.Services.ImportExport; using Umbraco.Cms.Core.Services.OperationStatus; +using Umbraco.Cms.Web.Common.Authorization; namespace Umbraco.Cms.Api.Management.Controllers.MediaType; [ApiVersion("1.0")] +[Authorize(Policy = AuthorizationPolicies.TreeAccessMediaTypes)] public class ImportNewMediaTypeController : MediaTypeControllerBase { private readonly IBackOfficeSecurityAccessor _backOfficeSecurityAccessor; diff --git a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MediaTypeControllerBase.cs b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MediaTypeControllerBase.cs index 38d11c175d..387d260cde 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MediaTypeControllerBase.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/MediaType/MediaTypeControllerBase.cs @@ -1,9 +1,8 @@ -using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Api.Management.Controllers.DocumentType; using Umbraco.Cms.Api.Management.Routing; -using Umbraco.Cms.Api.Management.ViewModels.MediaType; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Services.OperationStatus; using Umbraco.Cms.Web.Common.Authorization; From 1f2afbaa1d6a0ebcafc1d9aa8ee4179214f98e97 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Tue, 11 Mar 2025 09:45:50 +0100 Subject: [PATCH 3/6] Bumped version to 15.3.0-rc2. --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index dded7533aa..7e0ab94609 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json", - "version": "15.3.0-rc", + "version": "15.3.0-rc2", "assemblyVersion": { "precision": "build" }, From 3586f137fcc486d518a7bbee87ab54d91bd4cca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 11 Mar 2025 12:30:14 +0100 Subject: [PATCH 4/6] avoid indifferences on property-entry property order (#18530) --- .../src/packages/block/block/workspace/block-element-manager.ts | 2 +- .../core/content/workspace/content-detail-workspace-base.ts | 2 +- .../detail/document-blueprint-detail.server.data-source.ts | 2 +- .../repository/document-publishing.server.data-source.ts | 2 +- .../repository/detail/document-detail.server.data-source.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts index 4a5c0ab0c2..fce83a28bb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts @@ -195,7 +195,7 @@ export class UmbBlockElementManager; + const entry = { editorAlias, ...variantId.toObject(), alias, value } as UmbBlockDataValueModel; const currentData = this.getData(); if (currentData) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/content-detail-workspace-base.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/content-detail-workspace-base.ts index 363a73bdf3..717a94f14a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/content-detail-workspace-base.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/workspace/content-detail-workspace-base.ts @@ -479,7 +479,7 @@ export abstract class UmbContentDetailWorkspaceContextBase< } // Notice the order of the properties is important for our JSON String Compare function. [NL] - const entry = { editorAlias, alias, ...variantId.toObject(), value } as UmbElementValueModel; + const entry = { editorAlias, ...variantId.toObject(), alias, value } as UmbElementValueModel; const currentData = this.getData(); if (currentData) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.ts index acb3437977..b823c9bfe3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/repository/detail/document-blueprint-detail.server.data-source.ts @@ -93,9 +93,9 @@ export class UmbDocumentBlueprintServerDataSource implements UmbDetailDataSource values: data.values.map((value) => { return { editorAlias: value.editorAlias, - alias: value.alias, culture: value.culture || null, segment: value.segment || null, + alias: value.alias, value: value.value, }; }), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts index dcb0c72d76..9ec1bb22cf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts @@ -140,9 +140,9 @@ export class UmbDocumentPublishingServerDataSource { values: data.values.map((value) => { return { editorAlias: value.editorAlias, - alias: value.alias, culture: value.culture || null, segment: value.segment || null, + alias: value.alias, value: value.value, }; }), diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts index 0ffc3b371b..1b96b586c5 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/detail/document-detail.server.data-source.ts @@ -94,9 +94,9 @@ export class UmbDocumentServerDataSource implements UmbDetailDataSource { return { editorAlias: value.editorAlias, - alias: value.alias, culture: value.culture || null, segment: value.segment || null, + alias: value.alias, value: value.value, }; }), From de282d0fbf4695e617cb4751c789e4eea2a07c25 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Wed, 12 Mar 2025 07:59:37 +0100 Subject: [PATCH 5/6] Reverts UI updates from publish with descendants dialog (15) (#18646) * Reverts UI updates from publish with descendants dialog. * Removed unused variable. --- ...ublishDocumentWithDescendantsController.cs | 5 ---- src/Umbraco.Cms.Api.Management/OpenApi.json | 4 --- ...lishDocumentWithDescendantsRequestModel.cs | 2 -- .../src/assets/lang/da-dk.ts | 3 --- .../src/assets/lang/en-us.ts | 3 --- .../src/assets/lang/en.ts | 3 --- .../src/external/backend-api/src/types.gen.ts | 1 - ...-publish-with-descendants-modal.element.ts | 25 +------------------ ...nt-publish-with-descendants-modal.token.ts | 1 - .../document-publishing.repository.ts | 3 --- .../document-publishing.server.data-source.ts | 3 --- .../document-publishing.workspace-context.ts | 1 - 12 files changed, 1 insertion(+), 53 deletions(-) diff --git a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs index 62f0699342..869bc4c880 100644 --- a/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs +++ b/src/Umbraco.Cms.Api.Management/Controllers/Document/PublishDocumentWithDescendantsController.cs @@ -69,11 +69,6 @@ public class PublishDocumentWithDescendantsController : DocumentControllerBase publishBranchFilter |= PublishBranchFilter.IncludeUnpublished; } - if (requestModel.ForceRepublish) - { - publishBranchFilter |= PublishBranchFilter.ForceRepublish; - } - return publishBranchFilter; } } diff --git a/src/Umbraco.Cms.Api.Management/OpenApi.json b/src/Umbraco.Cms.Api.Management/OpenApi.json index 9ff09a431a..8e46876b21 100644 --- a/src/Umbraco.Cms.Api.Management/OpenApi.json +++ b/src/Umbraco.Cms.Api.Management/OpenApi.json @@ -42795,7 +42795,6 @@ "PublishDocumentWithDescendantsRequestModel": { "required": [ "cultures", - "forceRepublish", "includeUnpublishedDescendants" ], "type": "object", @@ -42803,9 +42802,6 @@ "includeUnpublishedDescendants": { "type": "boolean" }, - "forceRepublish": { - "type": "boolean" - }, "cultures": { "type": "array", "items": { diff --git a/src/Umbraco.Cms.Api.Management/ViewModels/Document/PublishDocumentWithDescendantsRequestModel.cs b/src/Umbraco.Cms.Api.Management/ViewModels/Document/PublishDocumentWithDescendantsRequestModel.cs index 2557adf9a4..bfd9aa0e3b 100644 --- a/src/Umbraco.Cms.Api.Management/ViewModels/Document/PublishDocumentWithDescendantsRequestModel.cs +++ b/src/Umbraco.Cms.Api.Management/ViewModels/Document/PublishDocumentWithDescendantsRequestModel.cs @@ -4,7 +4,5 @@ public class PublishDocumentWithDescendantsRequestModel { public bool IncludeUnpublishedDescendants { get; set; } - public bool ForceRepublish { get; set; } - public required IEnumerable Cultures { get; set; } } diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts index f8452c5332..16ffe924be 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/da-dk.ts @@ -298,9 +298,6 @@ export default { removeTextBox: 'Fjern denne tekstboks', contentRoot: 'Indholdsrod', includeUnpublished: 'Inkluder ikke-udgivet indhold.', - forceRepublish: 'Udgiv uændrede elementer.', - forceRepublishWarning: 'ADVARSEL: Udgivelse af alle sider under denne i indholdstræet, uanset om de er ændret eller ej, kan være en ressourcekrævende og langvarig proces.', - forceRepublishAdvisory: 'Dette bør ikke være nødvendigt under normale omstændigheder, så fortsæt kun med denne handling, hvis du er sikker på, at det er nødvendigt.', isSensitiveValue: 'Denne værdi er skjult.Hvis du har brug for adgang til at se denne værdi, bedes du\n kontakte din web-administrator.\n ', isSensitiveValue_short: 'Denne værdi er skjult.', diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts index a04089c694..320ecf8eb8 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en-us.ts @@ -320,9 +320,6 @@ export default { removeTextBox: 'Remove this text box', contentRoot: 'Content root', includeUnpublished: 'Include unpublished content items.', - forceRepublish: 'Publish unchanged items.', - forceRepublishWarning: 'WARNING: Publishing all pages below this one in the content tree, whether or not they have changed, can be an expensive and long-running operation.', - forceRepublishAdvisory: 'This should not be necessary in normal circumstances so please only proceed with this option selected if you are certain it is required.', isSensitiveValue: 'This value is hidden. If you need access to view this value please contact your\n website administrator.\n ', isSensitiveValue_short: 'This value is hidden.', diff --git a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts index f8764f9127..13a9bc9d72 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts +++ b/src/Umbraco.Web.UI.Client/src/assets/lang/en.ts @@ -317,9 +317,6 @@ export default { removeTextBox: 'Remove this text box', contentRoot: 'Content root', includeUnpublished: 'Include unpublished content items.', - forceRepublish: 'Publish unchanged items.', - forceRepublishWarning: 'WARNING: Publishing all pages below this one in the content tree, whether or not they have changed, can be an expensive and long-running operation.', - forceRepublishAdvisory: 'This should not be necessary in normal circumstances so please only proceed with this option selected if you are certain it is required.', isSensitiveValue: 'This value is hidden. If you need access to view this value please contact your\n website administrator.\n ', isSensitiveValue_short: 'This value is hidden.', diff --git a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts index 24fb93da0d..39926d2ee3 100644 --- a/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts +++ b/src/Umbraco.Web.UI.Client/src/external/backend-api/src/types.gen.ts @@ -2050,7 +2050,6 @@ export type PublishDocumentRequestModel = { export type PublishDocumentWithDescendantsRequestModel = { includeUnpublishedDescendants: boolean; - forceRepublish: boolean; cultures: Array<(string)>; }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts index 0705b49b74..f5f84f3290 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/publish-with-descendants/modal/document-publish-with-descendants-modal.element.ts @@ -5,7 +5,7 @@ import type { UmbDocumentPublishWithDescendantsModalValue, } from './document-publish-with-descendants-modal.token.js'; import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit'; -import { umbConfirmModal, UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; +import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; @@ -18,7 +18,6 @@ export class UmbDocumentPublishWithDescendantsModalElement extends UmbModalBaseE > { #selectionManager = new UmbSelectionManager(this); #includeUnpublishedDescendants = false; - #forceRepublish = false; @state() _options: Array = []; @@ -84,25 +83,11 @@ export class UmbDocumentPublishWithDescendantsModalElement extends UmbModalBaseE this.#includeUnpublishedDescendants = !this.#includeUnpublishedDescendants; } - async #onForceRepublishChange() { - this.#forceRepublish = !this.#forceRepublish; - } - async #submit() { - if (this.#forceRepublish) { - await umbConfirmModal(this, { - headline: this.localize.term('content_forceRepublishWarning'), - content: this.localize.term('content_forceRepublishAdvisory'), - color: 'warning', - confirmLabel: this.localize.term('actions_publish'), - }); - } - this.value = { selection: this.#selectionManager.getSelection(), includeUnpublishedDescendants: this.#includeUnpublishedDescendants, - forceRepublish: this.#forceRepublish, }; this.modalContext?.submit(); } @@ -143,14 +128,6 @@ export class UmbDocumentPublishWithDescendantsModalElement extends UmbModalBaseE @change=${this.#onIncludeUnpublishedDescendantsChange}> - - - -
, includeUnpublishedDescendants: boolean, - forceRepublish: boolean, ) { if (!id) throw new Error('id is missing'); if (!variantIds) throw new Error('variant IDs are missing'); @@ -88,7 +86,6 @@ export class UmbDocumentPublishingRepository extends UmbRepositoryBase { id, variantIds, includeUnpublishedDescendants, - forceRepublish, ); if (!error) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts index 9ec1bb22cf..add5a266fa 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts @@ -92,21 +92,18 @@ export class UmbDocumentPublishingServerDataSource { * @param unique * @param variantIds * @param includeUnpublishedDescendants - * @param forceRepublish * @memberof UmbDocumentPublishingServerDataSource */ async publishWithDescendants( unique: string, variantIds: Array, includeUnpublishedDescendants: boolean, - forceRepublish: boolean, ) { if (!unique) throw new Error('Id is missing'); const requestBody: PublishDocumentWithDescendantsRequestModel = { cultures: variantIds.map((variant) => variant.toCultureString()), includeUnpublishedDescendants, - forceRepublish, }; return tryExecuteAndNotify( diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts index 2d2c9940bf..c2d59220e3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.ts @@ -229,7 +229,6 @@ export class UmbDocumentPublishingWorkspaceContext extends UmbContextBase Date: Wed, 12 Mar 2025 10:00:24 +0000 Subject: [PATCH 6/6] Awaits `super.openPicker()` --- .../components/input-document/input-document.context.ts | 2 +- .../media/media/components/input-media/input-media.context.ts | 2 +- .../member/components/input-member/input-member.context.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts index 6d9f07bc55..e7fa6ad2f7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts @@ -46,7 +46,7 @@ export class UmbDocumentPickerInputContext extends UmbPickerInputContext< ...pickerData?.search?.queryParams, }; - super.openPicker(combinedPickerData); + await super.openPicker(combinedPickerData); } #pickableFilter = ( diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts index 80f62935f8..e46e071d2a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/components/input-media/input-media.context.ts @@ -44,7 +44,7 @@ export class UmbMediaPickerInputContext extends UmbPickerInputContext< ...pickerData?.search?.queryParams, }; - super.openPicker(combinedPickerData); + await super.openPicker(combinedPickerData); } #pickableFilter = ( diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.context.ts index 350e9b1ae4..7ed0b3f5e7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.context.ts @@ -48,7 +48,7 @@ export class UmbMemberPickerInputContext extends UmbPickerInputContext< ...pickerData?.search?.queryParams, }; - super.openPicker(combinedPickerData); + await super.openPicker(combinedPickerData); } #pickableFilter = (