From b451bb802b6b2536b767c16a5efba0641d648240 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 21 Jun 2023 08:45:54 +0200 Subject: [PATCH 1/6] Revert "Case-insensitive tag names with SQLite provider (#14012)" This reverts commit bb7752c48340f080d692cb230ca1e16a2654f05a. --- .../Repositories/Implement/TagRepository.cs | 4 +- .../Repositories/TagRepositoryTest.cs | 40 ------------------- 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs index bc78596762..ecc6600d4c 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TagRepository.cs @@ -131,7 +131,7 @@ internal class TagRepository : EntityRepositoryBase, ITagRepository var sql1 = $@"INSERT INTO cmsTags (tag, {group}, languageId) SELECT tagSet.tag, tagSet.{group}, tagSet.languageId FROM {tagSetSql} -LEFT OUTER JOIN cmsTags ON (tagSet.tag LIKE cmsTags.tag AND tagSet.{group} = cmsTags.{group} AND COALESCE(tagSet.languageId, -1) = COALESCE(cmsTags.languageId, -1)) +LEFT OUTER JOIN cmsTags ON (tagSet.tag = cmsTags.tag AND tagSet.{group} = cmsTags.{group} AND COALESCE(tagSet.languageId, -1) = COALESCE(cmsTags.languageId, -1)) WHERE cmsTags.id IS NULL"; Database.Execute(sql1); @@ -321,7 +321,7 @@ WHERE r.tagId IS NULL"; Sql sql = GetTaggedEntitiesSql(objectType, culture); sql = sql - .WhereLike(dto => dto.Text, tag); + .Where(dto => dto.Text == tag); if (group.IsNullOrWhiteSpace() == false) { diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs index a92123e934..1ce5eeefd9 100644 --- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs +++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Persistence/Repositories/TagRepositoryTest.cs @@ -13,7 +13,6 @@ using Umbraco.Cms.Infrastructure.Scoping; using Umbraco.Cms.Tests.Common.Builders; using Umbraco.Cms.Tests.Common.Testing; using Umbraco.Cms.Tests.Integration.Testing; -using static Umbraco.Cms.Core.Constants.Conventions; namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.Repositories; @@ -99,45 +98,6 @@ public class TagRepositoryTest : UmbracoIntegrationTest } } - [Test] - public void Can_Create_Tag_Relations_With_Mixed_Casing() - { - var provider = ScopeProvider; - using (ScopeProvider.CreateScope()) - { - var template = TemplateBuilder.CreateTextPageTemplate(); - FileService.SaveTemplate(template); - - var contentType = - ContentTypeBuilder.CreateSimpleContentType("test", "Test", defaultTemplateId: template.Id); - ContentTypeRepository.Save(contentType); - - var content1 = ContentBuilder.CreateSimpleContent(contentType); - var content2 = ContentBuilder.CreateSimpleContent(contentType); - DocumentRepository.Save(content1); - DocumentRepository.Save(content2); - - var repository = CreateRepository(provider); - Tag[] tags1 = { new Tag { Text = "tag1", Group = "test" } }; - repository.Assign( - content1.Id, - contentType.PropertyTypes.First().Id, - tags1, - false); - - // Note the casing is different from tags1, but both should be considered equivalent - Tag[] tags2 = { new Tag { Text = "TAG1", Group = "test" } }; - repository.Assign( - content2.Id, - contentType.PropertyTypes.First().Id, - tags2, - false); - - // The template should have only one tag, despite case differences - Assert.AreEqual(1, repository.GetTaggedEntitiesByTag(TaggableObjectTypes.Content, "tag1").Count()); - } - } - [Test] public void Can_Append_Tag_Relations() { From 2f486610bba30ea47bb0e719e9ad75f5f9df4b07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Jun 2023 18:19:53 +0000 Subject: [PATCH 2/6] Bump fast-xml-parser and is-svg in /src/Umbraco.Web.UI.Client Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [is-svg](https://github.com/sindresorhus/is-svg). These dependencies needed to be updated together. Updates `fast-xml-parser` from 3.20.3 to 4.2.4 - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits) Updates `is-svg` from 4.3.1 to 4.4.0 - [Release notes](https://github.com/sindresorhus/is-svg/releases) - [Commits](https://github.com/sindresorhus/is-svg/compare/v4.3.1...v4.4.0) --- updated-dependencies: - dependency-name: fast-xml-parser dependency-type: indirect - dependency-name: is-svg dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 38 ++++++++++++--------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index d06ae007dd..b8f8466ded 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -7162,20 +7162,26 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.20.3.tgz", - "integrity": "sha512-FfHJ/QCpo4K2gquBX7dIAcmShSBG4dMtYJ3ghSiR4w7YqlUujuamrM57C+mKLNWS3mvZzmm2B2Qx8Q6Gfw+lDQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz", + "integrity": "sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ==", "dev": true, + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "optional": true, "dependencies": { - "strnum": "^1.0.4" + "strnum": "^1.0.5" }, "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" + "fxparser": "src/cli/cli.js" } }, "node_modules/fastq": { @@ -10171,13 +10177,13 @@ } }, "node_modules/is-svg": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.1.tgz", - "integrity": "sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.4.0.tgz", + "integrity": "sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==", "dev": true, "optional": true, "dependencies": { - "fast-xml-parser": "^3.19.0" + "fast-xml-parser": "^4.1.3" }, "engines": { "node": ">=6" @@ -15732,9 +15738,9 @@ } }, "node_modules/strnum": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.4.tgz", - "integrity": "sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", "dev": true, "optional": true }, From 5c5de77965e3b5f2cdbbf454a99552465b3da521 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 11:28:07 +0000 Subject: [PATCH 3/6] Bump socket.io-parser from 4.2.1 to 4.2.4 in /src/Umbraco.Web.UI.Client Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.2.1 to 4.2.4. - [Release notes](https://github.com/socketio/socket.io-parser/releases) - [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md) - [Commits](https://github.com/socketio/socket.io-parser/compare/4.2.1...4.2.4) --- updated-dependencies: - dependency-name: socket.io-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index b8f8466ded..8536ac99bc 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -15130,9 +15130,9 @@ "dev": true }, "node_modules/socket.io-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", - "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", From 7e573c70a3aa0aeb7992de1bab9823d26b458c3e Mon Sep 17 00:00:00 2001 From: miguelcrpinto Date: Sat, 17 Jun 2023 10:28:53 +0200 Subject: [PATCH 4/6] Updated the IsoDateTimeConverter initialization in the JsonDateTimeFormatAttribute to set the Culture to InvariantCulture so that the custom DateTime format symbols ( date and time separators) are respected independent of the CurrentCulture being used. --- src/Umbraco.Web.Common/Filters/JsonDateTimeFormatAttribute.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.Common/Filters/JsonDateTimeFormatAttribute.cs b/src/Umbraco.Web.Common/Filters/JsonDateTimeFormatAttribute.cs index 247a2a09ba..0e0cf5587d 100644 --- a/src/Umbraco.Web.Common/Filters/JsonDateTimeFormatAttribute.cs +++ b/src/Umbraco.Web.Common/Filters/JsonDateTimeFormatAttribute.cs @@ -1,4 +1,5 @@ using System.Buffers; +using System.Globalization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.Options; @@ -42,7 +43,7 @@ public sealed class JsonDateTimeFormatAttribute : TypeFilterAttribute { var serializerSettings = new JsonSerializerSettings(); serializerSettings.Converters.Add( - new IsoDateTimeConverter { DateTimeFormat = _format }); + new IsoDateTimeConverter { DateTimeFormat = _format, Culture = CultureInfo.InvariantCulture }); objectResult.Formatters.Clear(); objectResult.Formatters.Add( new AngularJsonMediaTypeFormatter(serializerSettings, _arrayPool, _options)); From 75113a90fb351dd89ba966d31d4f2d7f78cc0722 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Thu, 22 Jun 2023 09:18:57 +0200 Subject: [PATCH 5/6] Bump version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 0c594e5b7e..f4c3bd0a8a 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "10.6.0-rc", + "version": "10.7.0-rc", "assemblyVersion": { "precision": "build" }, From f5b834974d47b93b544f891ffb5b29a8e4db87ac Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 26 Jun 2023 14:28:59 +0200 Subject: [PATCH 6/6] package-lock.json sync --- src/Umbraco.Web.UI.Client/package-lock.json | 28 ++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 8536ac99bc..b2176d277a 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -22960,13 +22960,13 @@ "dev": true }, "fast-xml-parser": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.20.3.tgz", - "integrity": "sha512-FfHJ/QCpo4K2gquBX7dIAcmShSBG4dMtYJ3ghSiR4w7YqlUujuamrM57C+mKLNWS3mvZzmm2B2Qx8Q6Gfw+lDQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.4.tgz", + "integrity": "sha512-fbfMDvgBNIdDJLdLOwacjFAPYt67tr31H9ZhWSm45CDAxvd0I6WTlSOUo7K2P/K5sA5JgMKG64PI3DMcaFdWpQ==", "dev": true, "optional": true, "requires": { - "strnum": "^1.0.4" + "strnum": "^1.0.5" } }, "fastq": { @@ -25274,13 +25274,13 @@ } }, "is-svg": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.1.tgz", - "integrity": "sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.4.0.tgz", + "integrity": "sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==", "dev": true, "optional": true, "requires": { - "fast-xml-parser": "^3.19.0" + "fast-xml-parser": "^4.1.3" } }, "is-symbol": { @@ -29035,9 +29035,9 @@ "dev": true }, "socket.io-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", - "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", @@ -29525,9 +29525,9 @@ } }, "strnum": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.4.tgz", - "integrity": "sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", "dev": true, "optional": true },