fix: strip starting slash from path during page create
This commit is contained in:
parent
deacd80c45
commit
65f71d8e3b
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user