Skip to content

Commit ebf967e

Browse files
author
vikasrohit
authored
Merge branch 'master' into hotfix/additional_logs_for_team_updated_event
2 parents 256cb77 + f6145ad commit ebf967e

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

src/events/projects/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const eClient = util.getElasticSearchClient();
2323
*/
2424
const indexProject = Promise.coroutine(function* (logger, msg) { // eslint-disable-line func-names
2525
const data = JSON.parse(msg.content.toString());
26-
const userIds = data.members ? data.members.map(single => `userId:${single.userId}`) : [];
26+
const userIds = data.members ? _.map(data.members, 'userId') : [];
2727
try {
2828
// retrieve member details
2929
const memberDetails = yield util.getMemberDetailsByUserIds(userIds, logger, msg.properties.correlationId);

src/routes/admin/project-index-create.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ module.exports = [
6969
// check context for project members
7070
project.members = _.map(currentProjectMembers, m => _.pick(m, fields.project_members));
7171
logger.debug('project.members => ', project.members);
72-
const userIds = project.members ? project.members.map(single => `userId:${single.userId}`) : [];
72+
const userIds = project.members ? _.map(project.members, 'userId') : [];
7373
logger.debug('userIds => ', userIds);
7474
return util.getMemberDetailsByUserIds(userIds, logger, req.id)
7575
.then((memberDetails) => {

src/routes/projectMemberInvites/create.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ const sendInviteEmail = (req, projectId, invite) => {
186186
where: { id: projectId },
187187
raw: true,
188188
}),
189-
util.getMemberDetailsByUserIds([`userId:${req.authUser.userId}`], req.log, req.id),
189+
util.getMemberDetailsByUserIds([req.authUser.userId], req.log, req.id),
190190
];
191191
return Promise.all(promises).then((responses) => {
192192
req.log.debug(responses);

src/util.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,8 @@ _.assignIn(util, {
280280

281281
// for non topcoder admins remove emails from the field list
282282
_.assign(fields, { project_members: _.filter(fields.project_members, f => f !== 'email') });
283+
_.assign(fields, { project_members: _.filter(fields.project_members, f => f !== 'firstName') });
284+
_.assign(fields, { project_members: _.filter(fields.project_members, f => f !== 'lastName') });
283285

284286
return fields;
285287
},
@@ -565,7 +567,7 @@ _.assignIn(util, {
565567
}
566568
return httpClient.get(`${config.memberServiceEndpoint}/_search`, {
567569
params: {
568-
query: `${userIds.join(urlencode(' OR ', 'utf8'))}`,
570+
query: `${_.map(userIds, id => `userId:${id}`).join(urlencode(' OR ', 'utf8'))}`,
569571
fields: 'userId,handle,firstName,lastName,email',
570572
},
571573
headers: {
@@ -665,11 +667,11 @@ _.assignIn(util, {
665667
return members;
666668
}
667669
const memberTraitFields = ['photoURL', 'workingHourStart', 'workingHourEnd', 'timeZone'];
668-
const memberDetailFields = ['handle', 'firstName', 'lastName'];
670+
let memberDetailFields = ['handle'];
669671

670672
// Only Topcoder admins can get emails for users
671673
if (util.hasPermission({ topcoderRoles: [USER_ROLE.TOPCODER_ADMIN] }, req.authUser)) {
672-
memberDetailFields.push('email');
674+
memberDetailFields = memberDetailFields.concat(['email', 'firstName', 'lastName']);
673675
}
674676

675677
let allMemberDetails = [];
@@ -727,6 +729,8 @@ _.assignIn(util, {
727729

728730
// in general, only users with Topcoder administrator privileges can see emails
729731
let canSeeEmail = util.hasPermission({ topcoderRoles: [USER_ROLE.TOPCODER_ADMIN] }, req.authUser);
732+
// we also shouldn't return full name to users except of admins
733+
const canSeeFullName = util.hasPermission({ topcoderRoles: [USER_ROLE.TOPCODER_ADMIN] }, req.authUser);
730734

731735
// specially for invite objects, we still have to return email, if invite is for a new user which doesn't have "userId"
732736
if (memberDetails.status) { // we identify that the object is "invite" and not a "member" if object has "status" field
@@ -736,6 +740,13 @@ _.assignIn(util, {
736740
if (!canSeeEmail) {
737741
delete memberDetails.email;
738742
}
743+
744+
// this is a temporary fix as ES also has this data, so we have explicitly remove it
745+
if (!canSeeFullName) {
746+
delete memberDetails.firstName;
747+
delete memberDetails.lastName;
748+
}
749+
739750
return _(memberDetails).pick(fields).defaults(memberDefaults).value();
740751
});
741752
},

0 commit comments

Comments
 (0)