From 3ee0ab92e269b90a0c4ebd84e8ee1a8f7a290e61 Mon Sep 17 00:00:00 2001 From: Bogdan Cochior <bogdan.cochior@thinslices.com> Date: Thu, 19 Apr 2018 15:55:16 +0300 Subject: [PATCH] feat(tooltip): filter author emails for reviewers --- .../xpub-faraday/config/authsome-helpers.js | 20 +++++++++++++++++++ packages/xpub-faraday/config/authsome.js | 10 +++------- 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 packages/xpub-faraday/config/authsome-helpers.js diff --git a/packages/xpub-faraday/config/authsome-helpers.js b/packages/xpub-faraday/config/authsome-helpers.js new file mode 100644 index 000000000..fb41c7733 --- /dev/null +++ b/packages/xpub-faraday/config/authsome-helpers.js @@ -0,0 +1,20 @@ +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 + } + }, +} diff --git a/packages/xpub-faraday/config/authsome.js b/packages/xpub-faraday/config/authsome.js index 5a31c01fa..9418e830b 100644 --- a/packages/xpub-faraday/config/authsome.js +++ b/packages/xpub-faraday/config/authsome.js @@ -1,9 +1,8 @@ const get = require('lodash/get') const pickBy = require('lodash/pickBy') 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) { const permissions = ['handlingEditor', 'author', 'reviewer'] const teams = await Promise.all( @@ -20,7 +19,6 @@ async function teamPermissions(user, operation, object, context) { id: team.object.id, permission: team.teamType.permissions, })) - const publicPermissions = ['author', 'reviewer'] if (collectionsPermissions.length > 0) { return { @@ -35,10 +33,8 @@ async function teamPermissions(user, operation, object, context) { if (matchingCollPerm === undefined) { return null } - coll.visibleStatus = statuses[coll.status].public - if (!publicPermissions.includes(matchingCollPerm.permission)) { - coll.visibleStatus = statuses[coll.status].private - } + helpers.setPublicStatuses(coll, matchingCollPerm) + helpers.parseReviewerAuthors(coll, matchingCollPerm) return coll }) .filter(Boolean) -- GitLab