From 81442adc29ae1e2121b1bc5e367ef37a93f474e4 Mon Sep 17 00:00:00 2001 From: Thomas Boutell Date: Mon, 19 Aug 2024 15:49:42 -0400 Subject: [PATCH 1/3] demonstrate how to forbid certain slugs --- modules/@apostrophecms/doc-type/index.js | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 modules/@apostrophecms/doc-type/index.js diff --git a/modules/@apostrophecms/doc-type/index.js b/modules/@apostrophecms/doc-type/index.js new file mode 100644 index 00000000..676bb2f2 --- /dev/null +++ b/modules/@apostrophecms/doc-type/index.js @@ -0,0 +1,28 @@ +console.log('loading'); + +module.exports = { + options: { + forbiddenSlugs: [ + '/evil-page', + 'evil-piece' + ] + }, + handlers(self) { + return { + beforeSave: { + checkForbiddenSlugs(req, doc) { + console.log(doc.slug); + if (self.options.forbiddenSlugs.includes(doc.slug)) { + const e = self.apos.error('invalid', 'That slug is reserved.'); + e.path = 'slug'; + throw self.apos.error('invalid', { + errors: [ + e + ] + }); + } + } + } + } + } +}; From 80c45f5f2fca22edc125d96651dab492507d8fdb Mon Sep 17 00:00:00 2001 From: Thomas Boutell Date: Mon, 19 Aug 2024 15:51:04 -0400 Subject: [PATCH 2/3] cleanup --- modules/@apostrophecms/doc-type/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/@apostrophecms/doc-type/index.js b/modules/@apostrophecms/doc-type/index.js index 676bb2f2..252db486 100644 --- a/modules/@apostrophecms/doc-type/index.js +++ b/modules/@apostrophecms/doc-type/index.js @@ -1,5 +1,3 @@ -console.log('loading'); - module.exports = { options: { forbiddenSlugs: [ From 673b0ecb599f856e443a45d017a559224c63364d Mon Sep 17 00:00:00 2001 From: Thomas Boutell Date: Mon, 19 Aug 2024 15:51:53 -0400 Subject: [PATCH 3/3] quiet logs --- modules/@apostrophecms/doc-type/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/@apostrophecms/doc-type/index.js b/modules/@apostrophecms/doc-type/index.js index 252db486..042da795 100644 --- a/modules/@apostrophecms/doc-type/index.js +++ b/modules/@apostrophecms/doc-type/index.js @@ -9,7 +9,6 @@ module.exports = { return { beforeSave: { checkForbiddenSlugs(req, doc) { - console.log(doc.slug); if (self.options.forbiddenSlugs.includes(doc.slug)) { const e = self.apos.error('invalid', 'That slug is reserved.'); e.path = 'slug';