From 00702d9435ff4809768641037ca70f10ef0711a2 Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Tue, 8 Oct 2019 15:12:29 +0200
Subject: [PATCH] OO-4285: Reset current role if current role no longer
 available

---
 .../repository/model/SingleRoleRepositoryEntrySecurity.java | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
index e9380bd9875..2940dc0aa91 100644
--- a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
+++ b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java
@@ -67,6 +67,12 @@ public class SingleRoleRepositoryEntrySecurity implements RepositoryEntrySecurit
 
 	public void setWrappedSecurity(RepositoryEntrySecurity wrappedSecurity) {
 		this.wrappedSecurity = wrappedSecurity;
+		// current role no longer possible
+		if ((Role.participant.equals(currentRole) && !isParticipant())
+			|| (Role.coach.equals(currentRole) && !isCoach())
+			|| (Role.owner.equals(currentRole) && !isOwner())) {
+			currentRole = getDefaultRole();
+		}
 	}
 	
 	public Set<Role> getOtherRoles() {
-- 
GitLab