@ -59,6 +59,8 @@ router.get(['/e', '/e/*'], async (req, res, next) => {
isPrivate : false
} )
pageArgs . tags = _ . get ( page , 'tags' , [ ] )
const injectCode = {
css : WIKI . config . theming . injectCSS ,
head : WIKI . config . theming . injectHead ,
@ -109,17 +111,20 @@ router.get(['/h', '/h/*'], async (req, res, next) => {
_ . set ( res , 'locals.siteConfig.lang' , pageArgs . locale )
if ( ! WIKI . auth . checkAccess ( req . user , [ 'read:history' ] , pageArgs ) ) {
_ . set ( res . locals , 'pageMeta.title' , 'Unauthorized' )
return res . render ( 'unauthorized' , { action : 'history' } )
}
const page = await WIKI . models . pages . getPageFromDb ( {
path : pageArgs . path ,
locale : pageArgs . locale ,
userId : req . user . id ,
isPrivate : false
} )
pageArgs . tags = _ . get ( page , 'tags' , [ ] )
if ( ! WIKI . auth . checkAccess ( req . user , [ 'read:history' ] , pageArgs ) ) {
_ . set ( res . locals , 'pageMeta.title' , 'Unauthorized' )
return res . render ( 'unauthorized' , { action : 'history' } )
}
if ( page ) {
_ . set ( res . locals , 'pageMeta.title' , page . title )
_ . set ( res . locals , 'pageMeta.description' , page . description )
@ -149,7 +154,8 @@ router.get(['/i', '/i/:id'], async (req, res, next) => {
path : page . path ,
private : page . isPrivate ,
privateNS : page . privateNS ,
explicitLocale : false
explicitLocale : false ,
tags : page . tags
} ) ) {
_ . set ( res . locals , 'pageMeta.title' , 'Unauthorized' )
return res . render ( 'unauthorized' , { action : 'view' } )
@ -175,6 +181,14 @@ router.get(['/p', '/p/*'], (req, res, next) => {
* /
router . get ( [ '/s' , '/s/*' ] , async ( req , res , next ) => {
const pageArgs = pageHelper . parsePath ( req . path , { stripExt : true } )
const page = await WIKI . models . pages . getPageFromDb ( {
path : pageArgs . path ,
locale : pageArgs . locale ,
userId : req . user . id ,
isPrivate : false
} )
pageArgs . tags = _ . get ( page , 'tags' , [ ] )
if ( WIKI . config . lang . namespacing && ! pageArgs . explicitLocale ) {
return res . redirect ( ` /s/ ${ pageArgs . locale } / ${ pageArgs . path } ` )
@ -186,12 +200,6 @@ router.get(['/s', '/s/*'], async (req, res, next) => {
return res . render ( 'unauthorized' , { action : 'source' } )
}
const page = await WIKI . models . pages . getPageFromDb ( {
path : pageArgs . path ,
locale : pageArgs . locale ,
userId : req . user . id ,
isPrivate : false
} )
if ( page ) {
_ . set ( res . locals , 'pageMeta.title' , page . title )
_ . set ( res . locals , 'pageMeta.description' , page . description )
@ -224,14 +232,6 @@ router.get('/*', async (req, res, next) => {
req . i18n . changeLanguage ( pageArgs . locale )
if ( ! WIKI . auth . checkAccess ( req . user , [ 'read:pages' ] , pageArgs ) ) {
if ( pageArgs . path === 'home' ) {
return res . redirect ( '/login' )
}
_ . set ( res . locals , 'pageMeta.title' , 'Unauthorized' )
return res . status ( 403 ) . render ( 'unauthorized' , { action : 'view' } )
}
try {
const page = await WIKI . models . pages . getPage ( {
path : pageArgs . path ,
@ -239,6 +239,17 @@ router.get('/*', async (req, res, next) => {
userId : req . user . id ,
isPrivate : false
} )
pageArgs . tags = _ . get ( page , 'tags' , [ ] )
if ( ! WIKI . auth . checkAccess ( req . user , [ 'read:pages' ] , pageArgs ) ) {
if ( pageArgs . path === 'home' ) {
return res . redirect ( '/login' )
}
_ . set ( res . locals , 'pageMeta.title' , 'Unauthorized' )
return res . status ( 403 ) . render ( 'unauthorized' , {
action : 'view'
} )
}
_ . set ( res , 'locals.siteConfig.lang' , pageArgs . locale )