Explorar el Código

fix: prevent empty page content

Nick hace 5 años
padre
commit
1d8f1f50e1
Se han modificado 2 ficheros con 13 adiciones y 0 borrados
  1. 4 0
      server/helpers/error.js
  2. 9 0
      server/models/pages.js

+ 4 - 0
server/helpers/error.js

@@ -125,6 +125,10 @@ module.exports = {
     message: 'Cannot create this page because an entry already exists at the same path.',
     code: 6002
   }),
+  PageEmptyContent: CustomError('PageEmptyContent', {
+    message: 'Page content cannot be empty.',
+    code: 6004
+  }),
   PageNotFound: CustomError('PageNotFound', {
     message: 'This page does not exist.',
     code: 6003

+ 9 - 0
server/models/pages.js

@@ -182,6 +182,10 @@ module.exports = class Page extends Model {
       throw new WIKI.Error.PageDuplicateCreate()
     }
 
+    if (!opts.content || _.trim(opts.content).length < 1) {
+      throw new WIKI.Error.PageEmptyContent()
+    }
+
     await WIKI.models.pages.query().insert({
       authorId: opts.authorId,
       content: opts.content,
@@ -230,6 +234,11 @@ module.exports = class Page extends Model {
     if (!ogPage) {
       throw new Error('Invalid Page Id')
     }
+
+    if (!opts.content || _.trim(opts.content).length < 1) {
+      throw new WIKI.Error.PageEmptyContent()
+    }
+
     await WIKI.models.pageHistory.addVersion({
       ...ogPage,
       isPublished: ogPage.isPublished === true || ogPage.isPublished === 1,