From 02188393f23f0dd9c80911e011dd8f6496f7c317 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Thu, 14 Dec 2023 09:11:37 +0100 Subject: [PATCH 1/5] bumb version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 308cdf5c7d..26ecc33103 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": "13.0.0", + "version": "13.0.1", "assemblyVersion": { "precision": "build" }, From c930b91eded095cb946afd4f1a03d9256a636d53 Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:44:55 +0100 Subject: [PATCH 2/5] 13: Add old databasemodel to ChangeLogStatusCode migration (#15454) * Add old model to migration and use that instead * Remove new column --- .../Upgrade/V_13_0_0/ChangeLogStatusCode.cs | 70 +++++++++++++++++-- 1 file changed, 64 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_0_0/ChangeLogStatusCode.cs b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_0_0/ChangeLogStatusCode.cs index 2df244be8c..3aaf2442aa 100644 --- a/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_0_0/ChangeLogStatusCode.cs +++ b/src/Umbraco.Infrastructure/Migrations/Upgrade/V_13_0_0/ChangeLogStatusCode.cs @@ -2,7 +2,7 @@ using NPoco; using Umbraco.Cms.Core; using Umbraco.Cms.Infrastructure.Persistence; -using Umbraco.Cms.Infrastructure.Persistence.Dtos; +using Umbraco.Cms.Infrastructure.Persistence.DatabaseAnnotations; using Umbraco.Extensions; namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_13_0_0; @@ -21,18 +21,18 @@ public class ChangeLogStatusCode : MigrationBase } Sql fetchQuery = Database.SqlContext.Sql() - .Select() - .From(); + .Select() + .From(); // Use a custom SQL query to prevent selecting explicit columns (sortOrder doesn't exist yet) - List webhookLogDtos = Database.Fetch(fetchQuery); + List webhookLogDtos = Database.Fetch(fetchQuery); Sql deleteQuery = Database.SqlContext.Sql() - .Delete(); + .Delete(); Database.Execute(deleteQuery); - foreach (WebhookLogDto webhookLogDto in webhookLogDtos) + foreach (WebhookLogDtoOld webhookLogDto in webhookLogDtos) { if (Enum.TryParse(webhookLogDto.StatusCode, out HttpStatusCode statusCode)) { @@ -42,4 +42,62 @@ public class ChangeLogStatusCode : MigrationBase Database.InsertBatch(webhookLogDtos); } + + [TableName(Constants.DatabaseSchema.Tables.WebhookLog)] + [PrimaryKey("id")] + [ExplicitColumns] + private class WebhookLogDtoOld + { + [Column("id")] + [PrimaryKeyColumn(AutoIncrement = true)] + public int Id { get; set; } + + [Column("webhookKey")] public Guid WebhookKey { get; set; } + + [Column(Name = "key")] + [NullSetting(NullSetting = NullSettings.NotNull)] + public Guid Key { get; set; } + + [Column(Name = "statusCode")] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string StatusCode { get; set; } = string.Empty; + + [Column(Name = "date")] + [Index(IndexTypes.NonClustered, Name = "IX_" + Constants.DatabaseSchema.Tables.WebhookLog + "_date")] + [NullSetting(NullSetting = NullSettings.NotNull)] + public DateTime Date { get; set; } + + [Column(Name = "url")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string Url { get; set; } = string.Empty; + + [Column(Name = "eventAlias")] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string EventAlias { get; set; } = string.Empty; + + [Column(Name = "retryCount")] + [NullSetting(NullSetting = NullSettings.NotNull)] + public int RetryCount { get; set; } + + [Column(Name = "requestHeaders")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string RequestHeaders { get; set; } = string.Empty; + + [Column(Name = "requestBody")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string RequestBody { get; set; } = string.Empty; + + [Column(Name = "responseHeaders")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string ResponseHeaders { get; set; } = string.Empty; + + [Column(Name = "responseBody")] + [SpecialDbType(SpecialDbTypes.NVARCHARMAX)] + [NullSetting(NullSetting = NullSettings.NotNull)] + public string ResponseBody { get; set; } = string.Empty; + } } From cedfdcc9b20cbb9ce588d5b2bd49eb3b7553f14d Mon Sep 17 00:00:00 2001 From: Chris Fitz-Avon Date: Thu, 14 Dec 2023 12:49:46 +0000 Subject: [PATCH 3/5] Remove content section access policy from GetAllLanguages endpoint. #15435 (#15450) --- src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs b/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs index cc7e510fe2..57f952ebcd 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs @@ -44,7 +44,6 @@ public class LanguageController : UmbracoAuthorizedJsonController /// /// [HttpGet] - [Authorize(Policy = AuthorizationPolicies.SectionAccessContent)] public IEnumerable? GetAllLanguages() { IEnumerable allLanguages = _localizationService.GetAllLanguages(); From 36b7b86384698872ac4bfe112ddf4bd9d1a42a3a Mon Sep 17 00:00:00 2001 From: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com> Date: Thu, 14 Dec 2023 13:57:52 +0100 Subject: [PATCH 4/5] Remove sections setting authorization policy (#15456) --- src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs b/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs index 57f952ebcd..3e54bb705a 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/LanguageController.cs @@ -18,7 +18,6 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers; /// Backoffice controller supporting the dashboard for language administration. /// [PluginController(Constants.Web.Mvc.BackOfficeApiArea)] -[Authorize(Policy = AuthorizationPolicies.SectionAccessSettings)] public class LanguageController : UmbracoAuthorizedJsonController { private readonly ILocalizationService _localizationService; From bf498b411c660e4f5a1b5082aaaa8c14eb5979a0 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 18 Dec 2023 06:58:12 +0100 Subject: [PATCH 5/5] RebuildOnStartupHandler should not inject ExamineIndexRebuilder, but only the interface (#15465) --- .../UmbracoBuilder.Examine.cs | 4 ++- .../Examine/ExamineIndexRebuilder.cs | 1 + .../Examine/RebuildOnStartupHandler.cs | 27 ++++++++++++++++--- .../UmbracoBuilderExtensions.cs | 2 +- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs index 19aa103123..4cd7df61a0 100644 --- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs +++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Examine.cs @@ -57,7 +57,9 @@ public static partial class UmbracoBuilderExtensions builder.Services.AddUnique(); builder.Services.AddUnique(); builder.Services.AddSingleton(); - builder.Services.AddSingleton(); + + builder.Services.AddSingleton(); //TODO remove in Umbraco 15. Only the interface should be in the service provider + builder.Services.AddUnique(); builder.AddNotificationHandler(); diff --git a/src/Umbraco.Infrastructure/Examine/ExamineIndexRebuilder.cs b/src/Umbraco.Infrastructure/Examine/ExamineIndexRebuilder.cs index 2a89327a33..5fe98dca0b 100644 --- a/src/Umbraco.Infrastructure/Examine/ExamineIndexRebuilder.cs +++ b/src/Umbraco.Infrastructure/Examine/ExamineIndexRebuilder.cs @@ -10,6 +10,7 @@ using Umbraco.Cms.Infrastructure.HostedServices; namespace Umbraco.Cms.Infrastructure.Examine; +[Obsolete("This will be removed in Umbraco 15. Use IIndexRebuilder instead.")] // Main reason for this is to remove it form the service container. Maybe even make this internal public class ExamineIndexRebuilder : IIndexRebuilder { private readonly IBackgroundTaskQueue _backgroundTaskQueue; diff --git a/src/Umbraco.Infrastructure/Examine/RebuildOnStartupHandler.cs b/src/Umbraco.Infrastructure/Examine/RebuildOnStartupHandler.cs index ca7bc49dee..1fb172c452 100644 --- a/src/Umbraco.Infrastructure/Examine/RebuildOnStartupHandler.cs +++ b/src/Umbraco.Infrastructure/Examine/RebuildOnStartupHandler.cs @@ -24,17 +24,38 @@ public sealed class RebuildOnStartupHandler : INotificationHandler()); builder.Services.AddUnique(testHelper.MainDom); - builder.Services.AddUnique(); + builder.Services.AddUnique(); builder.Services.AddUnique(factory => Mock.Of()); // we don't want persisted nucache files in tests