|
|
|
@ -111,7 +111,13 @@ module.exports = {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (args.tags && args.tags.length > 0) {
|
|
|
|
|
queryBuilder.whereIn('tags.tag', args.tags.map(t => _.trim(t).toLowerCase()))
|
|
|
|
|
queryBuilder.whereExists(function() {
|
|
|
|
|
this.select('*')
|
|
|
|
|
.from('pageTags as pt')
|
|
|
|
|
.leftJoin('tags as t', 'pt.tagId', 't.id')
|
|
|
|
|
.whereRaw('"pt"."pageId" = "pages"."id"')
|
|
|
|
|
.whereIn('t.tag', args.tags.map(t => _.trim(t).toLowerCase()))
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const orderDir = args.orderByDirection === 'DESC' ? 'desc' : 'asc'
|
|
|
|
|
switch (args.orderBy) {
|
|
|
|
@ -135,7 +141,8 @@ module.exports = {
|
|
|
|
|
results = _.filter(results, r => {
|
|
|
|
|
return WIKI.auth.checkAccess(context.req.user, ['read:pages'], {
|
|
|
|
|
path: r.path,
|
|
|
|
|
locale: r.locale
|
|
|
|
|
locale: r.locale,
|
|
|
|
|
tags: r.tags
|
|
|
|
|
})
|
|
|
|
|
}).map(r => ({
|
|
|
|
|
...r,
|
|
|
|
@ -183,7 +190,8 @@ module.exports = {
|
|
|
|
|
const allTags = _.filter(pages, r => {
|
|
|
|
|
return WIKI.auth.checkAccess(context.req.user, ['read:pages'], {
|
|
|
|
|
path: r.path,
|
|
|
|
|
locale: r.locale
|
|
|
|
|
locale: r.locale,
|
|
|
|
|
tags: r.tags
|
|
|
|
|
})
|
|
|
|
|
}).flatMap(r => r.tags)
|
|
|
|
|
return _.orderBy(_.uniqBy(allTags, 'id'), ['tag'], ['asc'])
|
|
|
|
|