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 468162a5ccd9292f1fa3fd2eb833218bcf74d5d6..c131de6d467f23514065fc67082ff73ac9ed818f 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 b285c1feedb407c0794f9cbd6590a88e9b12ff18..1cc280a37cddda334a5758ddaeff447368d596ea 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