Skip to content

Commit 24556a6

Browse files
Fix issue in _ensureAccessibleForTaskChallenge
1 parent 21f79ca commit 24556a6

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/common/helper.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -857,18 +857,19 @@ async function ensureAccessibleByGroupsAccess (currentUser, challenge) {
857857
* @param {Object} challenge the challenge to check
858858
*/
859859
async function _ensureAccessibleForTaskChallenge (currentUser, challenge) {
860-
let memberChallengeIds
860+
let challengeResourceIds
861861
// Remove privateDescription for unregistered users
862862
if (currentUser) {
863863
if (!currentUser.isMachine) {
864-
memberChallengeIds = await listChallengesByMember(currentUser.userId)
865-
if (!_.includes(memberChallengeIds, challenge.id)) {
864+
const challengeResources = await getChallengeResources(challenge.id)
865+
challengeResourceIds = _.map(challengeResources, r => _.toString(r.memberId))
866+
if (!_.includes(challengeResourceIds, _.toString(currentUser.userId))) {
866867
}
867868
}
868869
}
869870
// Check if challenge is task and apply security rules
870871
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)
872+
const canAccesChallenge = _.isUndefined(currentUser) ? false : _.includes((challengeResourceIds || []), _.toString(currentUser.userId)) || currentUser.isMachine || hasAdminRole(currentUser)
872873
if (!canAccesChallenge) {
873874
throw new errors.ForbiddenError(`You don't have access to view this challenge`)
874875
}

0 commit comments

Comments
 (0)