Skip to content

Commit dfc63f1

Browse files
committed
limit draft phase update events to topcoder project members
1 parent 2f57df8 commit dfc63f1

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/events/busApi.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { EVENT, BUS_API_EVENT, PROJECT_STATUS, PROJECT_PHASE_STATUS, PROJECT_MEM
44
from '../constants';
55
import { createEvent } from '../services/busApi';
66
import models from '../models';
7+
import getTopcoderProjectMembers from '../util';
78

89
/**
910
* Map of project status and event name sent to bus api
@@ -363,6 +364,8 @@ module.exports = (app, logger) => {
363364
projectUrl: connectProjectUrl(projectId),
364365
userId: req.authUser.userId,
365366
initiatorUserId: req.authUser.userId,
367+
allowedUsers: created.status === PROJECT_PHASE_STATUS.DRAFT ?
368+
getTopcoderProjectMembers(project.members) : null,
366369
}, logger);
367370
return sendPlanReadyEventIfNeeded(req, project, created);
368371
}).catch(err => null); // eslint-disable-line no-unused-vars
@@ -387,6 +390,8 @@ module.exports = (app, logger) => {
387390
projectUrl: connectProjectUrl(projectId),
388391
userId: req.authUser.userId,
389392
initiatorUserId: req.authUser.userId,
393+
allowedUsers: deleted.status === PROJECT_PHASE_STATUS.DRAFT ?
394+
getTopcoderProjectMembers(project.members) : null,
390395
}, logger);
391396
}).catch(err => null); // eslint-disable-line no-unused-vars
392397
});
@@ -438,6 +443,8 @@ module.exports = (app, logger) => {
438443
projectName: project.name,
439444
userId: req.authUser.userId,
440445
initiatorUserId: req.authUser.userId,
446+
allowedUsers: updated.status === PROJECT_PHASE_STATUS.DRAFT ?
447+
getTopcoderProjectMembers(project.members) : null,
441448
}, logger));
442449
events.forEach((event) => { eventsMap[event] = true; });
443450
}
@@ -483,6 +490,8 @@ module.exports = (app, logger) => {
483490
projectUrl: connectProjectUrl(projectId),
484491
userId: req.authUser.userId,
485492
initiatorUserId: req.authUser.userId,
493+
allowedUsers: updated.status === PROJECT_PHASE_STATUS.DRAFT ?
494+
getTopcoderProjectMembers(project.members) : null,
486495
}, logger);
487496
}
488497
}).catch(err => null); // eslint-disable-line no-unused-vars

src/util.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import elasticsearch from 'elasticsearch';
1818
import Promise from 'bluebird';
1919
// import AWS from 'aws-sdk';
2020

21-
import { ADMIN_ROLES, TOKEN_SCOPES, EVENT } from './constants';
21+
import { ADMIN_ROLES, TOKEN_SCOPES, EVENT, PROJECT_MEMBER_ROLE } from './constants';
2222

2323
const exec = require('child_process').exec;
2424
const models = require('./models').default;
@@ -468,6 +468,13 @@ _.assignIn(util, {
468468
});
469469
});
470470
},
471+
472+
/**
473+
* Filter only members of topcoder team
474+
* @param {Array} members project members
475+
* @return {Array} tpcoder project members
476+
*/
477+
getTopcoderProjectMembers: members => _(members).filter(m => m.role !== PROJECT_MEMBER_ROLE.CUSTOMER),
471478
});
472479

473480
export default util;

0 commit comments

Comments
 (0)