Browse Source

fix: prevent dots and spaces in page path during create

Nick 5 years ago
parent
commit
95535aa3b0
2 changed files with 8 additions and 0 deletions
  1. 4 0
      server/helpers/error.js
  2. 4 0
      server/models/pages.js

+ 4 - 0
server/helpers/error.js

@@ -129,6 +129,10 @@ module.exports = {
     message: 'Page content cannot be empty.',
     code: 6004
   }),
+  PageIllegalPath: CustomError('PageIllegalPath', {
+    message: 'Page path cannot contains illegal characters.',
+    code: 6005
+  }),
   PageNotFound: CustomError('PageNotFound', {
     message: 'This page does not exist.',
     code: 6003

+ 4 - 0
server/models/pages.js

@@ -213,6 +213,10 @@ module.exports = class Page extends Model {
    * @returns {Promise} Promise of the Page Model Instance
    */
   static async createPage(opts) {
+    if (opts.path.indexOf('.') >= 0 || opts.path.indexOf(' ') >= 0) {
+      throw new WIKI.Error.PageIllegalPath()
+    }
+
     const dupCheck = await WIKI.models.pages.query().select('id').where('localeCode', opts.locale).where('path', opts.path).first()
     if (dupCheck) {
       throw new WIKI.Error.PageDuplicateCreate()