Skip to content

Commit c0b72b4

Browse files
authored
Merge pull request #376 from topcoder-platform/hot-fix-access-check-master
Fix issue in _ensureAccessibleForTaskChallenge
2 parents 21f79ca + 8120164 commit c0b72b4

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/common/helper.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -857,18 +857,16 @@ async function ensureAccessibleByGroupsAccess (currentUser, challenge) {
857857
* @param {Object} challenge the challenge to check
858858
*/
859859
async function _ensureAccessibleForTaskChallenge (currentUser, challenge) {
860-
let memberChallengeIds
861-
// Remove privateDescription for unregistered users
860+
let challengeResourceIds
862861
if (currentUser) {
863862
if (!currentUser.isMachine) {
864-
memberChallengeIds = await listChallengesByMember(currentUser.userId)
865-
if (!_.includes(memberChallengeIds, challenge.id)) {
866-
}
863+
const challengeResources = await getChallengeResources(challenge.id)
864+
challengeResourceIds = _.map(challengeResources, r => _.toString(r.memberId))
867865
}
868866
}
869867
// Check if challenge is task and apply security rules
870868
if (_.get(challenge, 'task.isTask', false) && _.get(challenge, 'task.isAssigned', false)) {
871-
const canAccesChallenge = _.isUndefined(currentUser) ? false : _.includes((memberChallengeIds || []), challenge.id) || currentUser.isMachine || hasAdminRole(currentUser)
869+
const canAccesChallenge = _.isUndefined(currentUser) ? false : currentUser.isMachine || hasAdminRole(currentUser) || _.includes((challengeResourceIds || []), _.toString(currentUser.userId))
872870
if (!canAccesChallenge) {
873871
throw new errors.ForbiddenError(`You don't have access to view this challenge`)
874872
}

0 commit comments

Comments
 (0)