From eb3c25b26d99e8511dc4be8808ad68ab25e4f066 Mon Sep 17 00:00:00 2001
From: aboeckle <alexander.boeckle@frentix.com>
Date: Thu, 20 Aug 2020 11:43:37 +0200
Subject: [PATCH] OO-4844 Ignore guest related consents

---
 .../manager/CourseDisclaimerManagerImpl.java          | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/main/java/org/olat/course/disclaimer/manager/CourseDisclaimerManagerImpl.java b/src/main/java/org/olat/course/disclaimer/manager/CourseDisclaimerManagerImpl.java
index 0c3f0a07ed9..f8f172fe1f1 100644
--- a/src/main/java/org/olat/course/disclaimer/manager/CourseDisclaimerManagerImpl.java
+++ b/src/main/java/org/olat/course/disclaimer/manager/CourseDisclaimerManagerImpl.java
@@ -22,6 +22,7 @@ package org.olat.course.disclaimer.manager;
 import java.util.List;
 
 import org.apache.logging.log4j.Logger;
+import org.olat.basesecurity.BaseSecurityManager;
 import org.olat.basesecurity.IdentityRef;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.id.Identity;
@@ -48,6 +49,9 @@ public class CourseDisclaimerManagerImpl implements CourseDisclaimerManager, Use
 	
 	@Autowired
 	private CourseDisclaimerDAO courseDisclaimerDAO;
+
+	@Autowired
+	private BaseSecurityManager baseSecurityManager;
 	
 	@Autowired
 	private DB dbInstance;
@@ -69,6 +73,10 @@ public class CourseDisclaimerManagerImpl implements CourseDisclaimerManager, Use
 
 	@Override
 	public void acceptDisclaimer(RepositoryEntry repositoryEntry, Identity identitiy, boolean disc1Accepted, boolean disc2Accepted) {
+		if (baseSecurityManager.getRoles(identitiy).isGuestOnly()) {
+			return;
+		}
+
 		CourseDisclaimerConsent consent = courseDisclaimerDAO.getCourseDisclaimerConsent(repositoryEntry, identitiy);
 
 		if (consent != null) {
@@ -107,6 +115,9 @@ public class CourseDisclaimerManagerImpl implements CourseDisclaimerManager, Use
 					accessGranted &= false;
 				}
 			}
+			if (baseSecurityManager.getRoles(identitiyRef).isGuestOnly()) {
+				accessGranted &= false;
+			}
 		}
 
 		return accessGranted;
-- 
GitLab