From 488f32c18cd851ffee9ac41ed8a6de5bc6574718 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 4 Feb 2021 08:53:12 +0100 Subject: [PATCH] OO-5271: deleted and trashed course must be read-only --- .../org/olat/course/run/CourseRuntimeController.java | 12 +++++++++--- .../olat/course/run/_i18n/LocalStrings_de.properties | 1 + .../olat/course/run/_i18n/LocalStrings_en.properties | 1 + .../olat/course/run/_i18n/LocalStrings_fr.properties | 1 + .../run/userview/UserCourseEnvironmentImpl.java | 3 +-- .../java/org/olat/repository/RepositoryManager.java | 2 +- .../model/SingleRoleRepositoryEntrySecurity.java | 2 +- 7 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index 3e149c758b5..129c7f19c7a 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -481,9 +481,15 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im private void setCourseClosedMessage() { UserCourseEnvironment userCourseEnv = getUserCourseEnvironment(); - if(userCourseEnv != null && getRepositoryEntry().getEntryStatus() == RepositoryEntryStatusEnum.closed) { - toolbarPanel.setMessage(translate("course.closed")); - toolbarPanel.setMessageCssClass("o_warning"); + if(userCourseEnv != null) { + if(getRepositoryEntry().getEntryStatus() == RepositoryEntryStatusEnum.closed) { + toolbarPanel.setMessage(translate("course.closed")); + toolbarPanel.setMessageCssClass("o_warning"); + } else if(getRepositoryEntry().getEntryStatus() == RepositoryEntryStatusEnum.deleted + || getRepositoryEntry().getEntryStatus() == RepositoryEntryStatusEnum.trash) { + toolbarPanel.setMessage(translate("course.deleted")); + toolbarPanel.setMessageCssClass("o_warning"); + } } else { toolbarPanel.setMessage(null); toolbarPanel.setMessageComponent(null); diff --git a/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties index fd13bbb9485..3be482b63fe 100644 --- a/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties @@ -55,6 +55,7 @@ command.run=Kurs Laufzeitumgebung command.settings=Kursinfo \u00e4ndern command.wiki=Wiki course.closed=Dieser Kurs wurde beendet und kann nicht mehr bearbeitet oder aktualisiert werden. +course.deleted=Dieser Kurs wurde gel\u00f6scht und kann nicht mehr bearbeitet oder aktualisiert werden. course.disposed.command.restart=Den Kurs beenden und neu starten course.disposed.message=Bitte beenden Sie diesen Kurs und starten Sie ihn neu. course.disposed.title=Dieser Kurs wurde ver\u00e4ndert. diff --git a/src/main/java/org/olat/course/run/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/run/_i18n/LocalStrings_en.properties index 0defb69156a..5d0f8ecd4f7 100644 --- a/src/main/java/org/olat/course/run/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/run/_i18n/LocalStrings_en.properties @@ -55,6 +55,7 @@ command.run=Course runtime command.settings=Change course info command.wiki=Wiki course.closed=This course is finished and can therefore no longer be edited or updated. +course.deleted=This course is deleted and can therefore no longer be edited or updated. course.disposed.command.restart=Close course and restart course.disposed.message=Please close this course and restart. course.disposed.title=This course has been modified. diff --git a/src/main/java/org/olat/course/run/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/run/_i18n/LocalStrings_fr.properties index d954f235e95..7dd82aaddc4 100644 --- a/src/main/java/org/olat/course/run/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/course/run/_i18n/LocalStrings_fr.properties @@ -55,6 +55,7 @@ command.run=Cours command.settings=Modifier la description command.wiki=Wiki course.closed=Ce cours est termin\u00E9 et n'est plus \u00E9dit\u00E9 ou actualis\u00E9. +course.deleted=Ce cours a \u00E9t\u00E9 effac\u00E9 et n'est plus \u00E9dit\u00E9 ou actualis\u00E9. course.disposed.command.restart=Fermer le cours et red\u00E9marrer. course.disposed.message=Fermez le cours et red\u00E9marrez-le \u00E0 nouveau SVP. course.disposed.title=Le cours a \u00E9t\u00E9 modifi\u00E9. diff --git a/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java b/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java index bf905bc81e7..9e5885a5413 100644 --- a/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java +++ b/src/main/java/org/olat/course/run/userview/UserCourseEnvironmentImpl.java @@ -50,7 +50,6 @@ import org.olat.group.BusinessGroup; import org.olat.modules.curriculum.CurriculumElement; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntrySecurity; -import org.olat.repository.RepositoryEntryStatusEnum; import org.olat.repository.model.RepositoryEntryLifecycle; /** @@ -81,7 +80,7 @@ public class UserCourseEnvironmentImpl implements UserCourseEnvironment { public UserCourseEnvironmentImpl(IdentityEnvironment identityEnvironment, CourseEnvironment courseEnvironment) { this(identityEnvironment, courseEnvironment, null, null, null, null, null, null, null, null); if(courseEnvironment != null) { - courseReadOnly = courseEnvironment.getCourseGroupManager().getCourseEntry().getEntryStatus() == RepositoryEntryStatusEnum.closed; + courseReadOnly = courseEnvironment.getCourseGroupManager().getCourseEntry().getEntryStatus().decommissioned(); } } diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java index 418e44adc99..21b86c26845 100644 --- a/src/main/java/org/olat/repository/RepositoryManager.java +++ b/src/main/java/org/olat/repository/RepositoryManager.java @@ -640,7 +640,7 @@ public class RepositoryManager { } } - boolean readOnly = re.getEntryStatus() == RepositoryEntryStatusEnum.closed; + boolean readOnly = re.getEntryStatus().decommissioned(); return new RepositoryEntrySecurityImpl(isEntryAdmin, isOwner, isCourseParticipant, isCourseCoach, diff --git a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java index 991fce053e2..3b78d27beba 100644 --- a/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java +++ b/src/main/java/org/olat/repository/model/SingleRoleRepositoryEntrySecurity.java @@ -58,7 +58,7 @@ public class SingleRoleRepositoryEntrySecurity implements RepositoryEntrySecurit return iconCssClass; } - }; + } private Role currentRole; private RepositoryEntrySecurity wrappedSecurity; -- GitLab