From fc272ce88da0e1c6ad025ea871dfb7731c8d7522 Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Tue, 1 Oct 2019 10:32:55 +0700 Subject: [PATCH 1/3] add roles that can join as manager --- src/routes/projectMembers/create.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/projectMembers/create.js b/src/routes/projectMembers/create.js index 93510e86..1309593f 100644 --- a/src/routes/projectMembers/create.js +++ b/src/routes/projectMembers/create.js @@ -81,10 +81,14 @@ module.exports = [ USER_ROLE.TOPCODER_ACCOUNT_MANAGER, USER_ROLE.BUSINESS_DEVELOPMENT_REPRESENTATIVE, USER_ROLE.PRESALES, + USER_ROLE.ACCOUNT_EXECUTIVE, + USER_ROLE.PROGRAM_MANAGER, + USER_ROLE.SOLUTION_ARCHITECT, + USER_ROLE.PROJECT_MANAGER, ])) { const err = new Error( - `Only manager, account manager, business development representative, - or presales are able to join as ${targetRole}`, + // eslint-disable-next-line max-len + `Only manager, account manager, business development representative, account executive, program manager, project manager, solution architect, or presales are able to join as ${targetRole}`, ); err.status = 401; return next(err); From d7279f269cdac99cf7b4d70e1aafc1e631643d47 Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Tue, 1 Oct 2019 10:35:10 +0700 Subject: [PATCH 2/3] add program manager, project manager, and solution architect roles to whom can activate project --- src/routes/projects/update.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/projects/update.js b/src/routes/projects/update.js index 2567cbfb..7839e359 100644 --- a/src/routes/projects/update.js +++ b/src/routes/projects/update.js @@ -221,7 +221,9 @@ module.exports = [ const members = req.context.currentProjectMembers; const validRoles = [ PROJECT_MEMBER_ROLE.MANAGER, - PROJECT_MEMBER_ROLE.MANAGER, + PROJECT_MEMBER_ROLE.PROGRAM_MANAGER, + PROJECT_MEMBER_ROLE.PROJECT_MANAGER, + PROJECT_MEMBER_ROLE.SOLUTION_ARCHITECT, ].map(x => x.toLowerCase()); const matchRole = role => _.indexOf(validRoles, role.toLowerCase()) >= 0; if (updatedProps.status === PROJECT_STATUS.ACTIVE && From f95a249b013d7bbee1f202e840b59e2841b8839e Mon Sep 17 00:00:00 2001 From: Muhamad Fikri Alhawarizmi Date: Tue, 1 Oct 2019 10:39:44 +0700 Subject: [PATCH 3/3] MEMBER_JOINED_EVENT event should be sent when user has any manager role including new manager roles --- src/events/busApi.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/events/busApi.js b/src/events/busApi.js index 978e7a92..926285e8 100644 --- a/src/events/busApi.js +++ b/src/events/busApi.js @@ -122,16 +122,17 @@ module.exports = (app, logger) => { logger.debug('receive PROJECT_MEMBER_ADDED event'); let eventType; - switch (member.role) { - case PROJECT_MEMBER_ROLE.MANAGER: - eventType = BUS_API_EVENT.MEMBER_JOINED_MANAGER; - break; - case PROJECT_MEMBER_ROLE.COPILOT: - eventType = BUS_API_EVENT.MEMBER_JOINED_COPILOT; - break; - default: - eventType = BUS_API_EVENT.MEMBER_JOINED; - break; + if ([ + PROJECT_MEMBER_ROLE.MANAGER, + PROJECT_MEMBER_ROLE.PROJECT_MANAGER, + PROJECT_MEMBER_ROLE.PROGRAM_MANAGER, + PROJECT_MEMBER_ROLE.SOLUTION_ARCHITECT, + ].includes(member.role)) { + eventType = BUS_API_EVENT.MEMBER_JOINED_MANAGER; + } else if (member.role === PROJECT_MEMBER_ROLE.COPILOT) { + eventType = BUS_API_EVENT.MEMBER_JOINED_COPILOT; + } else { + eventType = BUS_API_EVENT.MEMBER_JOINED; } const projectId = _.parseInt(req.params.projectId);