Skip to content

Commit bfae357

Browse files
Fix issue in _ensureAccessibleForTaskChallenge
1 parent 4935596 commit bfae357

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
@@ -863,18 +863,19 @@ async function ensureAccessibleByGroupsAccess (currentUser, challenge) {
863863
* @param {Object} challenge the challenge to check
864864
*/
865865
async function _ensureAccessibleForTaskChallenge (currentUser, challenge) {
866-
let memberChallengeIds
866+
let challengeResourceIds
867867
// Remove privateDescription for unregistered users
868868
if (currentUser) {
869869
if (!currentUser.isMachine) {
870-
memberChallengeIds = await listChallengesByMember(currentUser.userId)
871-
if (!_.includes(memberChallengeIds, challenge.id)) {
870+
const challengeResources = await getChallengeResources(challenge.id)
871+
challengeResourceIds = _.map(challengeResources, r => _.toString(r.memberId))
872+
if (!_.includes(challengeResourceIds, _.toString(currentUser.userId))) {
872873
}
873874
}
874875
}
875876
// Check if challenge is task and apply security rules
876877
if (_.get(challenge, 'task.isTask', false) && _.get(challenge, 'task.isAssigned', false)) {
877-
const canAccesChallenge = _.isUndefined(currentUser) ? false : _.includes((memberChallengeIds || []), challenge.id) || currentUser.isMachine || hasAdminRole(currentUser)
878+
const canAccesChallenge = _.isUndefined(currentUser) ? false : _.includes((challengeResourceIds || []), _.toString(currentUser.userId)) || currentUser.isMachine || hasAdminRole(currentUser)
878879
if (!canAccesChallenge) {
879880
throw new errors.ForbiddenError(`You don't have access to view this task as you don't have a resource on it`)
880881
}

0 commit comments

Comments
 (0)