Skip to content
Snippets Groups Projects
Commit 3f400fcb authored by srosse's avatar srosse
Browse files

FXOLAT-282: user friendly message for guest which see a vitero course bb (and not a red screen)

parent 520b8dc2
No related branches found
No related tags found
No related merge requests found
...@@ -26,7 +26,9 @@ import org.olat.core.CoreSpringFactory; ...@@ -26,7 +26,9 @@ import org.olat.core.CoreSpringFactory;
import org.olat.core.gui.UserRequest; import org.olat.core.gui.UserRequest;
import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Controller;
import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.generic.messages.MessageUIFactory;
import org.olat.core.gui.control.generic.tabbable.TabbableController; import org.olat.core.gui.control.generic.tabbable.TabbableController;
import org.olat.core.gui.translator.Translator;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.olat.core.id.Roles; import org.olat.core.id.Roles;
import org.olat.core.util.Util; import org.olat.core.util.Util;
...@@ -50,6 +52,7 @@ import org.olat.repository.RepositoryManager; ...@@ -50,6 +52,7 @@ import org.olat.repository.RepositoryManager;
import com.frentix.olat.course.nodes.vitero.ViteroEditController; import com.frentix.olat.course.nodes.vitero.ViteroEditController;
import com.frentix.olat.course.nodes.vitero.ViteroPeekViewController; import com.frentix.olat.course.nodes.vitero.ViteroPeekViewController;
import com.frentix.olat.course.nodes.vitero.ViteroRunController;
import com.frentix.olat.vitero.manager.ViteroManager; import com.frentix.olat.vitero.manager.ViteroManager;
import com.frentix.olat.vitero.ui.ViteroBookingsRunController; import com.frentix.olat.vitero.ui.ViteroBookingsRunController;
...@@ -98,29 +101,36 @@ public class ViteroCourseNode extends AbstractAccessableCourseNode { ...@@ -98,29 +101,36 @@ public class ViteroCourseNode extends AbstractAccessableCourseNode {
public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl, public NodeRunConstructionResult createNodeRunConstructionResult(UserRequest ureq, WindowControl wControl,
UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) { UserCourseEnvironment userCourseEnv, NodeEvaluation ne, String nodecmd) {
updateModuleConfigDefaults(false); updateModuleConfigDefaults(false);
// check if user is moderator of the virtual classroom Controller runCtr;
Roles roles = ureq.getUserSession().getRoles(); Roles roles = ureq.getUserSession().getRoles();
boolean moderator = roles.isOLATAdmin(); if (roles.isGuestOnly()) {
Long key = userCourseEnv.getCourseEnvironment().getCourseResourceableId(); Translator trans = Util.createPackageTranslator(ViteroRunController.class, ureq.getLocale());
if (!moderator) { String title = trans.translate("guestnoaccess.title");
if(roles.isInstitutionalResourceManager() | roles.isAuthor()) { String message = trans.translate("guestnoaccess.message");
RepositoryManager rm = RepositoryManager.getInstance(); runCtr = MessageUIFactory.createInfoMessage(ureq, wControl, title, message);
ICourse course = CourseFactory.loadCourse(key); } else {
RepositoryEntry re = rm.lookupRepositoryEntry(course, false); // check if user is moderator of the virtual classroom
if (re != null) { boolean moderator = roles.isOLATAdmin();
moderator = rm.isOwnerOfRepositoryEntry(ureq.getIdentity(), re); Long key = userCourseEnv.getCourseEnvironment().getCourseResourceableId();
if(!moderator) { if (!moderator) {
moderator = rm.isInstitutionalRessourceManagerFor(re, ureq.getIdentity()); if(roles.isInstitutionalResourceManager() | roles.isAuthor()) {
RepositoryManager rm = RepositoryManager.getInstance();
ICourse course = CourseFactory.loadCourse(key);
RepositoryEntry re = rm.lookupRepositoryEntry(course, false);
if (re != null) {
moderator = rm.isOwnerOfRepositoryEntry(ureq.getIdentity(), re);
if(!moderator) {
moderator = rm.isInstitutionalRessourceManagerFor(re, ureq.getIdentity());
}
} }
} }
} }
// create run controller
Long resourceId = userCourseEnv.getCourseEnvironment().getCourseResourceableId();
OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseModule.class, resourceId);
String courseTitle = userCourseEnv.getCourseEnvironment().getCourseTitle();
runCtr = new ViteroBookingsRunController(ureq, wControl, null, ores, courseTitle, moderator);
} }
// create run controller
Long resourceId = userCourseEnv.getCourseEnvironment().getCourseResourceableId();
OLATResourceable ores = OresHelper.createOLATResourceableInstance(CourseModule.class, resourceId);
String courseTitle = userCourseEnv.getCourseEnvironment().getCourseTitle();
Controller runCtr = new ViteroBookingsRunController(ureq, wControl, null, ores, courseTitle, moderator);
Controller controller = TitledWrapperHelper.getWrapper(ureq, wControl, runCtr, this, "o_vitero_icon"); Controller controller = TitledWrapperHelper.getWrapper(ureq, wControl, runCtr, this, "o_vitero_icon");
return new NodeRunConstructionResult(controller); return new NodeRunConstructionResult(controller);
} }
......
...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty ...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty
pane.tab.accessibility=Zugang pane.tab.accessibility=Zugang
pane.tab.vcconfig=Konfiguration pane.tab.vcconfig=Konfiguration
condition.accessibility.title=Zugang condition.accessibility.title=Zugang
title_vc=vitero title_vc=vitero
\ No newline at end of file guestnoaccess.title=$org.olat.course.nodes\:guestnoaccess.title
guestnoaccess.message=$org.olat.course.nodes\:guestnoaccess.message
\ No newline at end of file
...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty ...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty
pane.tab.accessibility=Access pane.tab.accessibility=Access
pane.tab.vcconfig=Configuration pane.tab.vcconfig=Configuration
condition.accessibility.title=Access condition.accessibility.title=Access
title_vc=vitero title_vc=vitero
\ No newline at end of file guestnoaccess.title=$org.olat.course.nodes\:guestnoaccess.title
guestnoaccess.message=$org.olat.course.nodes\:guestnoaccess.message
\ No newline at end of file
...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty ...@@ -3,4 +3,6 @@ table.empty=$com.frentix.olat.vitero.ui\:table.empty
pane.tab.accessibility=Accs pane.tab.accessibility=Accs
pane.tab.vcconfig=Configuration pane.tab.vcconfig=Configuration
condition.accessibility.title=Accs condition.accessibility.title=Accs
title_vc=vitero title_vc=vitero
\ No newline at end of file guestnoaccess.title=$org.olat.course.nodes\:guestnoaccess.title
guestnoaccess.message=$org.olat.course.nodes\:guestnoaccess.message
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment