fix: strip starting slash from path during page create
This commit is contained in:
		| @@ -214,7 +214,7 @@ module.exports = class Page extends Model { | |||||||
|    */ |    */ | ||||||
|   static async createPage(opts) { |   static async createPage(opts) { | ||||||
|     // -> Validate path |     // -> Validate path | ||||||
|     if (opts.path.indexOf('.') >= 0 || opts.path.indexOf(' ') >= 0 || opts.path.indexOf('\\') >= 0) { |     if (opts.path.indexOf('.') >= 0 || opts.path.indexOf(' ') >= 0 || opts.path.indexOf('\\') >= 0 || opts.path.indexOf('//') >= 0) { | ||||||
|       throw new WIKI.Error.PageIllegalPath() |       throw new WIKI.Error.PageIllegalPath() | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -223,6 +223,11 @@ module.exports = class Page extends Model { | |||||||
|       opts.path = opts.path.slice(0, -1) |       opts.path = opts.path.slice(0, -1) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     // -> Remove starting slash | ||||||
|  |     if (opts.path.startsWith('/')) { | ||||||
|  |       opts.path = opts.path.slice(1) | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // -> Check for page access |     // -> Check for page access | ||||||
|     if (!WIKI.auth.checkAccess(opts.user, ['write:pages'], { |     if (!WIKI.auth.checkAccess(opts.user, ['write:pages'], { | ||||||
|       locale: opts.locale, |       locale: opts.locale, | ||||||
| @@ -404,7 +409,7 @@ module.exports = class Page extends Model { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // -> Validate path |     // -> Validate path | ||||||
|     if (opts.destinationPath.indexOf('.') >= 0 || opts.destinationPath.indexOf(' ') >= 0 || opts.destinationPath.indexOf('\\') >= 0) { |     if (opts.destinationPath.indexOf('.') >= 0 || opts.destinationPath.indexOf(' ') >= 0 || opts.destinationPath.indexOf('\\') >= 0 || opts.destinationPath.indexOf('//') >= 0) { | ||||||
|       throw new WIKI.Error.PageIllegalPath() |       throw new WIKI.Error.PageIllegalPath() | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -413,6 +418,11 @@ module.exports = class Page extends Model { | |||||||
|       opts.destinationPath = opts.destinationPath.slice(0, -1) |       opts.destinationPath = opts.destinationPath.slice(0, -1) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     // -> Remove starting slash | ||||||
|  |     if (opts.destinationPath.startsWith('/')) { | ||||||
|  |       opts.destinationPath = opts.destinationPath.slice(1) | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // -> Check for source page access |     // -> Check for source page access | ||||||
|     if (!WIKI.auth.checkAccess(opts.user, ['manage:pages'], { |     if (!WIKI.auth.checkAccess(opts.user, ['manage:pages'], { | ||||||
|       locale: page.localeCode, |       locale: page.localeCode, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user