From 36bf8d38ebd90556a0db5941f62469d0672b67c9 Mon Sep 17 00:00:00 2001 From: Boaz Poolman Date: Thu, 13 Mar 2025 21:41:38 +0000 Subject: [PATCH] fix: incorrect duplication prevention for content types without internationalization --- .changeset/easy-comics-fail.md | 5 +++++ .../middlewares/prevent-duplicate-urls.ts | 20 +++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 .changeset/easy-comics-fail.md diff --git a/.changeset/easy-comics-fail.md b/.changeset/easy-comics-fail.md new file mode 100644 index 00000000..1e9d748f --- /dev/null +++ b/.changeset/easy-comics-fail.md @@ -0,0 +1,5 @@ +--- +"strapi-plugin-webtools": patch +--- + +Fix incorrect duplication prevention for content types without internationalization diff --git a/packages/core/server/middlewares/prevent-duplicate-urls.ts b/packages/core/server/middlewares/prevent-duplicate-urls.ts index 31928e50..3158c2d3 100644 --- a/packages/core/server/middlewares/prevent-duplicate-urls.ts +++ b/packages/core/server/middlewares/prevent-duplicate-urls.ts @@ -18,17 +18,15 @@ const preventDuplicateUrlsMiddleware: Modules.Documents.Middleware.Middleware = const params = context.params as Modules.Documents.ServiceParams<'plugin::webtools.url-alias'>['create' | 'update' | 'clone'] & { documentId: string }; if (params.data.url_path) { - params.data.url_path = await getPluginService('url-alias').makeUniquePath( - params.data.url_path, - action !== 'clone' && [ - { - documentId: params.documentId, - }, - { - locale: params.locale, - }, - ], - ); + const excludeFilters: { [key: string]: any }[] = []; + + excludeFilters.push({ documentId: params.documentId }); + + if (params.locale) { + excludeFilters.push({ locale: params.locale }); + } + + params.data.url_path = await getPluginService('url-alias').makeUniquePath(params.data.url_path, action !== 'clone' && excludeFilters); } return next();