From c2fe02dffb1d8d66e8cdd09825a2d184190d4c20 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 22 Apr 2020 13:28:23 +0200
Subject: [PATCH] no-jira: fix rs in forum course element preview

---
 .../java/org/olat/course/nodes/FOCourseNode.java    | 11 +++++------
 .../olat/course/nodes/bc/BCPreviewController.java   |  2 +-
 .../olat/course/nodes/fo/FOPreviewController.java   | 13 ++++++++-----
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/FOCourseNode.java b/src/main/java/org/olat/course/nodes/FOCourseNode.java
index 9c6c7beb935..fe64bd3ce46 100644
--- a/src/main/java/org/olat/course/nodes/FOCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/FOCourseNode.java
@@ -186,9 +186,9 @@ public class FOCourseNode extends AbstractAccessableCourseNode {
 		return new NodeRunConstructionResult(forumC);
 	}
 
-	private boolean isModerator(UserCourseEnvironment userCourseEnv, NodeEvaluation ne) {
+	public boolean isModerator(UserCourseEnvironment userCourseEnv, NodeEvaluation ne) {
 		if (hasCustomPreConditions()) {
-			return ne != null? ne.isCapabilityAccessible("moderator"): false;
+			return ne != null && ne.isCapabilityAccessible("moderator");
 		} else if (getModuleConfiguration().getBooleanSafe(CONFIG_COACH_MODERATE_ALLOWED) && userCourseEnv.isCoach()) {
 			return true;
 		}
@@ -197,7 +197,7 @@ public class FOCourseNode extends AbstractAccessableCourseNode {
 	
 	public boolean isPoster(UserCourseEnvironment userCourseEnv, NodeEvaluation ne) {
 		if (hasCustomPreConditions()) {
-			return ne != null ? ne.isCapabilityAccessible("poster") : false;
+			return ne != null && ne.isCapabilityAccessible("poster");
 		} else if ((getModuleConfiguration().getBooleanSafe(CONFIG_COACH_POST_ALLOWED) && userCourseEnv.isCoach())
 				|| (getModuleConfiguration().getBooleanSafe(CONFIG_PARTICIPANT_POST_ALLOWED) && userCourseEnv.isParticipant())) {
 			return true;
@@ -278,8 +278,7 @@ public class FOCourseNode extends AbstractAccessableCourseNode {
 	private Forum createForum(final CourseEnvironment courseEnv) {
 		final ForumManager fom = CoreSpringFactory.getImpl(ForumManager.class);
 		// creates resourceable from FOCourseNode.class and the current node id as key
-		OLATResourceable courseNodeResourceable = OresHelper.createOLATResourceableInstance(FOCourseNode.class,
-				new Long(getIdent()));
+		OLATResourceable courseNodeResourceable = OresHelper.createOLATResourceableInstance(FOCourseNode.class, Long.valueOf(getIdent()));
 		// o_clusterOK by:ld
 		return CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(courseNodeResourceable,
 				new SyncerCallback<Forum>() {
@@ -337,7 +336,7 @@ public class FOCourseNode extends AbstractAccessableCourseNode {
 	@Override
 	public Controller createPreviewController(UserRequest ureq, WindowControl wControl,
 			UserCourseEnvironment userCourseEnv, CourseNodeSecurityCallback nodeSecCallback) {
-		return new FOPreviewController(ureq, wControl, nodeSecCallback.getNodeEvaluation());
+		return new FOPreviewController(ureq, wControl, this, userCourseEnv, nodeSecCallback);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java b/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
index 3017dc591bb..e792696f734 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
@@ -64,7 +64,7 @@ public class BCPreviewController extends DefaultController {
 		previewVC.put("folder", folder.getInitialComponent());
 		// get additional infos
 		boolean canDownload = node.canDownload(ne);
-		boolean canUpload = node.canUpload(userCourseEnv, ne);;
+		boolean canUpload = node.canUpload(userCourseEnv, ne);
 		VFSSecurityCallback secCallback = new FolderNodeCallback(namedContainer.getRelPath(), canDownload, canUpload, false, false, null);
 		previewVC.contextPut("canUpload", Boolean.valueOf(secCallback.canWrite()));
 		previewVC.contextPut("canDownload", Boolean.valueOf(secCallback.canRead()));
diff --git a/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java b/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
index b0703baa258..7e55c4783bf 100644
--- a/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
+++ b/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
@@ -33,7 +33,9 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
-import org.olat.course.run.userview.NodeEvaluation;
+import org.olat.course.nodes.FOCourseNode;
+import org.olat.course.run.userview.CourseNodeSecurityCallback;
+import org.olat.course.run.userview.UserCourseEnvironment;
 
 /**
  * Description: <br>
@@ -52,13 +54,14 @@ public class FOPreviewController extends DefaultController {
 	 * @param node
 	 * @param ne
 	 */
-	public FOPreviewController(UserRequest ureq, WindowControl wControl, NodeEvaluation ne) {
+	public FOPreviewController(UserRequest ureq, WindowControl wControl, FOCourseNode courseNode,
+			UserCourseEnvironment userCourseEnv, CourseNodeSecurityCallback nodeSecCallback) {
 		super(wControl);
 		trans = Util.createPackageTranslator(FOPreviewController.class, ureq.getLocale());
 		previewVC = new VelocityContainer("foPreviewVC", VELOCITY_ROOT + "/preview.html", trans, this);
-		previewVC.contextPut("canRead", Boolean.valueOf(ne.isCapabilityAccessible("reader")));
-		previewVC.contextPut("canPost", Boolean.valueOf(ne.isCapabilityAccessible("poster")));
-		previewVC.contextPut("canModerate", Boolean.valueOf(ne.isCapabilityAccessible("moderator")));
+		previewVC.contextPut("canRead", nodeSecCallback.isAccessible());
+		previewVC.contextPut("canPost", courseNode.isPoster(userCourseEnv, nodeSecCallback.getNodeEvaluation()));
+		previewVC.contextPut("canModerate", courseNode.isModerator(userCourseEnv, nodeSecCallback.getNodeEvaluation()));
 		setInitialComponent(previewVC);
 	}
 
-- 
GitLab