From a91c4c2311bc3f492acb27fc77c00db61841dd13 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 25 Mar 2013 09:46:44 +0100 Subject: [PATCH] OO-570: don't allow invitee to close their unique tab --- .../fullWebApp/BaseFullWebappController.java | 19 ++++++++++++++++++- .../core/commons/fullWebApp/_content/nav.html | 4 +++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java index 468162a5ccd..c131de6d467 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java +++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java @@ -135,11 +135,17 @@ public class BaseFullWebappController extends BasicController implements Generic private Panel initialPanel; private DTabs myDTabsImpl; private static Integer MAX_TAB; + + private boolean invitee = false; public BaseFullWebappController(UserRequest ureq, WindowControl ouisc_wControl, BaseFullWebappControllerParts baseFullWebappControllerParts) { // only-use-in-super-call, since we define our own super(ureq, null); + + if(ureq.getUserSession() != null && ureq.getUserSession().getRoles() != null) { + invitee = ureq.getUserSession().getRoles().isInvitee(); + } this.baseFullWebappControllerParts = baseFullWebappControllerParts; @@ -1029,7 +1035,7 @@ public class BaseFullWebappController extends BasicController implements Generic /** * - * [used by velocity + * [used by velocity] * * @return */ @@ -1037,6 +1043,17 @@ public class BaseFullWebappController extends BasicController implements Generic return curDTab != null && dtab == curDTab; } + /** + * Invitee have only one dynamic tab. They are not allowed + * to close it. + * [used by velocity] + * + * @return + */ + public boolean isCanCloseDTab(DTab dtab) { + return !invitee && !(sites == null || sites.isEmpty()); + } + private void setCurrent(SiteInstance site, DTab tab) { curSite = site; curDTab = tab; diff --git a/src/main/java/org/olat/core/commons/fullWebApp/_content/nav.html b/src/main/java/org/olat/core/commons/fullWebApp/_content/nav.html index b285c1feedb..1cc280a37cd 100644 --- a/src/main/java/org/olat/core/commons/fullWebApp/_content/nav.html +++ b/src/main/java/org/olat/core/commons/fullWebApp/_content/nav.html @@ -28,7 +28,9 @@ <li class="b_nav_tab b_nav_active $!navel.getIconCSSClass()"> <div> ## div used for tab icon $r.render("a$postfix") - $r.render("cp$postfix") ## close link has class b_nav_tab_close + #if($tabhelper.isCanCloseDTab($dtab)) + $r.render("cp$postfix") ## close link has class b_nav_tab_close + #end </div> </li> #else -- GitLab