From cea451eb2a17f81b9744793ced0b19f4f54c6247 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Thu, 3 Oct 2019 16:55:05 +0200
Subject: [PATCH] OO-4289: exclude more people to qualify as "not member" of a
 course

---
 .../course/assessment/manager/AssessmentToolManagerImpl.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentToolManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentToolManagerImpl.java
index 33158d4d2ef..83505d887b5 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentToolManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentToolManagerImpl.java
@@ -603,7 +603,7 @@ public class AssessmentToolManagerImpl implements AssessmentToolManager {
 
 	@Override
 	public List<AssessmentEntry> getAssessmentEntries(Identity coach, SearchAssessedIdentityParams params, AssessmentEntryStatus status) {
-		StringBuilder sb = new StringBuilder();
+		QueryBuilder sb = new QueryBuilder();
 		sb.append("select aentry from assessmententry aentry")
 		  .append(" inner join fetch aentry.identity as assessedIdentity")
 		  .append(" inner join fetch assessedIdentity.user as assessedUser")
@@ -625,7 +625,8 @@ public class AssessmentToolManagerImpl implements AssessmentToolManager {
 	          .append("  )");
 			if(params.isNonMembers()) {
 				sb.append(" or assessedIdentity.key not in (select membership.identity.key from repoentrytogroup as rel, bgroupmember as membership")
-		          .append("    where rel.entry.key=:repoEntryKey and rel.group=membership.group and membership.identity=aentry.identity")
+		          .append("    where rel.entry.key=:repoEntryKey and rel.group.key=membership.group.key and membership.identity.key=aentry.identity.key")
+		          .append("    and membership.role ").in(GroupRoles.participant, GroupRoles.coach, GroupRoles.owner)
 		          .append(" )");
 			}
 		} else if(params.isCoach()) {
-- 
GitLab