From a5ca87f749e7d8cedd9de6c5b09db370517ea4be Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 12 Nov 2015 08:19:05 +0100 Subject: [PATCH] OO-1777: prevent guest to leave a course --- .../java/org/olat/course/run/CourseRuntimeController.java | 4 +++- .../repository/ui/list/RepositoryEntryDetailsController.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 8011704767b..57683617aa7 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -581,7 +581,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im } if(repositoryService.isParticipantAllowedToLeave(getRepositoryEntry()) - && !assessmentLock + && !assessmentLock && !roles.isGuestOnly() && (uce.isParticipant() || !uce.getParticipatingGroups().isEmpty())) { leaveLink = LinkFactory.createToolLink("sign.out", "leave", translate("sign.out"), this); leaveLink.setIconLeftCSS("o_icon o_icon-fw o_icon_sign_out"); @@ -1015,6 +1015,8 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im } private void doLeave(UserRequest ureq) { + if(roles.isGuestOnly()) return; + MailerResult result = new MailerResult(); MailPackage reMailing = new MailPackage(result, getWindowControl().getBusinessControl().getAsString(), true); //leave course diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java index 259edbbe7f7..4492052bba1 100644 --- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java +++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java @@ -313,7 +313,8 @@ public class RepositoryEntryDetailsController extends FormBasicController { Roles roles = ureq.getUserSession().getRoles(); layoutCont.contextPut("roles", roles); - if(memberRoles.contains(GroupRoles.participant.name()) && repositoryService.isParticipantAllowedToLeave(entry)) { + if(!guestOnly && memberRoles.contains(GroupRoles.participant.name()) + && repositoryService.isParticipantAllowedToLeave(entry)) { leaveLink = uifactory.addFormLink("sign.out", "leave", "sign.out", null, formLayout, Link.LINK); leaveLink.setIconLeftCSS("o_icon o_icon_sign_out"); } @@ -576,6 +577,8 @@ public class RepositoryEntryDetailsController extends FormBasicController { } protected void doLeave() { + if(guestOnly) return; + MailerResult result = new MailerResult(); MailPackage reMailing = new MailPackage(result, getWindowControl().getBusinessControl().getAsString(), true); LeavingStatusList status = new LeavingStatusList(); -- GitLab