diff --git a/packages/component-invite/config/test.js b/packages/component-invite/config/test.js index 98b13174ed64eaeceacbe719fd8b4d20b53cb6d8..a1e52fc0b730d1b5e7836ac08eb6b0188b3c13ae 100644 --- a/packages/component-invite/config/test.js +++ b/packages/component-invite/config/test.js @@ -9,12 +9,12 @@ module.exports = { }, roles: { global: ['admin', 'editorInChief', 'author', 'handlingEditor'], - collection: ['handlingEditor', 'reviewer', 'coAuthor'], + collection: ['handlingEditor', 'reviewer', 'author'], inviteRights: { - admin: ['admin', 'editorInChief', 'author', 'handlingEditor', 'coAuthor'], + admin: ['admin', 'editorInChief', 'author', 'handlingEditor', 'author'], editorInChief: ['handlingEditor'], handlingEditor: ['reviewer'], - author: ['coAuthor'], + author: ['author'], }, }, } diff --git a/packages/component-invite/package.json b/packages/component-invite/package.json index 180757c55cc4d43bdb4609c49dbfb89ba4152578..898457935b99b32c29b550e9587883749792c734 100644 --- a/packages/component-invite/package.json +++ b/packages/component-invite/package.json @@ -7,7 +7,7 @@ "files": ["src"], "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 0" + "test": "jest" }, "repository": { "type": "git", diff --git a/packages/component-invite/src/controllers/assignCollectionRole.js b/packages/component-invite/src/controllers/assignCollectionRole.js index 50c1e31f9d3b8686b753012e226a4f974662e5fd..7603c877b9632a4b025be6db17dfbc408fa0f785 100644 --- a/packages/component-invite/src/controllers/assignCollectionRole.js +++ b/packages/component-invite/src/controllers/assignCollectionRole.js @@ -131,7 +131,7 @@ module.exports = async ( return res.status(500).json({ error: 'Mail could not be sent.' }) } } catch (e) { - if (e.name === 'NotFoundError' && role === 'coAuthor') { + if (e.name === 'NotFoundError' && role === 'author') { return userHelper.setupNewUser( body, url, @@ -139,7 +139,7 @@ module.exports = async ( email, role, models.User, - 'invite-coauthor', + 'invite-author', ) } const notFoundError = await helpers.handleNotFoundError(e, 'user') diff --git a/packages/component-invite/src/routes/deleteInvitation.js b/packages/component-invite/src/routes/deleteInvitation.js index b85fa6d9e0605d4ec7cf606368524908d5f9e465..f4346a3f417290cff63a989231eaf40145067104 100644 --- a/packages/component-invite/src/routes/deleteInvitation.js +++ b/packages/component-invite/src/routes/deleteInvitation.js @@ -20,8 +20,10 @@ module.exports = models => async (req, res) => { } const reqUser = await models.User.find(req.user) - if (!reqUser.editorInChief) { - res.status(400).json({ error: 'The request user must be Editor in Chief' }) + if (!reqUser.editorInChief || !reqUser.admin) { + res + .status(400) + .json({ error: 'The request user must be Editor in Chief or Admin' }) return } diff --git a/packages/component-invite/src/routes/getCollectionUsers.js b/packages/component-invite/src/routes/getCollectionUsers.js index a08cdba076c3130d940a6344cad85c2a17588967..a6b3f5817aaf4a83f06a19bd95ca954d2cec7b0e 100644 --- a/packages/component-invite/src/routes/getCollectionUsers.js +++ b/packages/component-invite/src/routes/getCollectionUsers.js @@ -34,6 +34,9 @@ module.exports = models => async (req, res) => { const membersData = members.map(async member => { const user = await models.User.find(member) + if (role === 'author') { + return user + } const { timestamp, status } = inviteHelper.getInviteData( user.invitations, collectionId, diff --git a/packages/component-invite/src/tests/postInvite.test.js b/packages/component-invite/src/tests/postInvite.test.js index e790949dede41a56a177fcac773886655f61dfac..56c8771c0e4104180cab40ee2c03efe4ce538cea 100644 --- a/packages/component-invite/src/tests/postInvite.test.js +++ b/packages/component-invite/src/tests/postInvite.test.js @@ -245,7 +245,7 @@ describe('Post invite route handler', () => { it('should return success when an author adds a new co author to a collection', async () => { const body = { email: chance.email(), - role: 'coAuthor', + role: 'author', } const req = httpMocks.createRequest({ body, @@ -263,7 +263,7 @@ describe('Post invite route handler', () => { it('should return success when an author adds an existing user as co author to a collection', async () => { const body = { email: author.email, - role: 'coAuthor', + role: 'author', } const req = httpMocks.createRequest({ body, diff --git a/packages/component-mail-service/src/Mail.js b/packages/component-mail-service/src/Mail.js index 1d7e188911406e53b03ab4ec340d39e02ad331df..760e6824c555411293c1df4b66cb8f01dad7bb91 100644 --- a/packages/component-mail-service/src/Mail.js +++ b/packages/component-mail-service/src/Mail.js @@ -36,7 +36,7 @@ module.exports = { url: dashBoardUrl, } break - case 'assign-coauthor': + case 'assign-author': subject = 'Manuscript Assignment on Hindawi' replacements = { url: dashBoardUrl, diff --git a/packages/xpub-faraday/config/authsome.js b/packages/xpub-faraday/config/authsome.js index abd7c34913f8c9afb37bdd96fc98f98e040ad010..96417f9df59925de36665ede105d89fe34ecb9f5 100644 --- a/packages/xpub-faraday/config/authsome.js +++ b/packages/xpub-faraday/config/authsome.js @@ -22,8 +22,8 @@ async function teamPermissions(user, operation, object, context) { return { filter: filterParam => { if (filterParam.length > 0) { - const collections = filterParam.filter(coll => - collIDs.includes(coll.id), + const collections = filterParam.filter( + coll => collIDs.includes(coll.id) || coll.owners.includes(user.id), ) return collections }