fix: prevent dots and spaces in page path during create

This commit is contained in:
Nick 2019-10-02 00:44:18 -04:00
parent 2e0f861fb2
commit 95535aa3b0
2 changed files with 8 additions and 0 deletions

View File

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

View File

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