Skip to content
Snippets Groups Projects
Commit 3ee0ab92 authored by Bogdan Cochior's avatar Bogdan Cochior
Browse files

feat(tooltip): filter author emails for reviewers

parent 4e170cc7
No related branches found
No related tags found
1 merge request!6Agree/Decline to work on a manuscript
const omit = require('lodash/omit')
const config = require('config')
const statuses = config.get('statuses')
const publicStatusesPermissions = ['author', 'reviewer']
module.exports = {
parseReviewerAuthors: (coll, matchingCollPerm) => {
if (['reviewer'].includes(matchingCollPerm.permission)) {
coll.authors = coll.authors.map(a => omit(a, ['email']))
}
},
setPublicStatuses: (coll, matchingCollPerm) => {
coll.visibleStatus = statuses[coll.status].public
if (!publicStatusesPermissions.includes(matchingCollPerm.permission)) {
coll.visibleStatus = statuses[coll.status].private
}
},
}
const get = require('lodash/get') const get = require('lodash/get')
const pickBy = require('lodash/pickBy') const pickBy = require('lodash/pickBy')
const omit = require('lodash/omit') const omit = require('lodash/omit')
const config = require('config') const helpers = require('./authsome-helpers')
const statuses = config.get('statuses')
async function teamPermissions(user, operation, object, context) { async function teamPermissions(user, operation, object, context) {
const permissions = ['handlingEditor', 'author', 'reviewer'] const permissions = ['handlingEditor', 'author', 'reviewer']
const teams = await Promise.all( const teams = await Promise.all(
...@@ -20,7 +19,6 @@ async function teamPermissions(user, operation, object, context) { ...@@ -20,7 +19,6 @@ async function teamPermissions(user, operation, object, context) {
id: team.object.id, id: team.object.id,
permission: team.teamType.permissions, permission: team.teamType.permissions,
})) }))
const publicPermissions = ['author', 'reviewer']
if (collectionsPermissions.length > 0) { if (collectionsPermissions.length > 0) {
return { return {
...@@ -35,10 +33,8 @@ async function teamPermissions(user, operation, object, context) { ...@@ -35,10 +33,8 @@ async function teamPermissions(user, operation, object, context) {
if (matchingCollPerm === undefined) { if (matchingCollPerm === undefined) {
return null return null
} }
coll.visibleStatus = statuses[coll.status].public helpers.setPublicStatuses(coll, matchingCollPerm)
if (!publicPermissions.includes(matchingCollPerm.permission)) { helpers.parseReviewerAuthors(coll, matchingCollPerm)
coll.visibleStatus = statuses[coll.status].private
}
return coll return coll
}) })
.filter(Boolean) .filter(Boolean)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment