diff --git a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java index 2fdb6e4a5effc80a391fa7af8cdcfde890ccc8e0..4e5ab328cbbc0d098d493be1821a9e25a586e049 100644 --- a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java @@ -149,6 +149,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr protected CloseableModalController cmc; private final boolean admin; + private final boolean showAdminTools; @Autowired protected MarkManager markManager; @Autowired @@ -170,14 +171,17 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr private Object userObject; public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page) { - this(ureq, wControl, page, null); + this(ureq, wControl, page, false, null); } - public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page, Object userObject) { + public AbstractBusinessGroupListController(UserRequest ureq, WindowControl wControl, String page, + boolean showAdminTools, Object userObject) { super(ureq, wControl, page); setTranslator(Util.createPackageTranslator(AbstractBusinessGroupListController.class, ureq.getLocale(), getTranslator())); - admin = ureq.getUserSession().getRoles().isOLATAdmin() || ureq.getUserSession().getRoles().isGroupManager(); + Roles roles = ureq.getUserSession().getRoles(); + admin = roles.isOLATAdmin() || roles.isGroupManager(); + this.showAdminTools = showAdminTools && admin; this.userObject = userObject; initForm(ureq); @@ -194,7 +198,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr options.setFromColumnModel(true); tableEl.setSortSettings(options); - searchCtrl = new BusinessGroupSearchController(ureq, getWindowControl(), isAdmin(), true, false, mainForm); + searchCtrl = new BusinessGroupSearchController(ureq, getWindowControl(), isAdmin(), true, showAdminTools, mainForm); searchCtrl.setEnabled(false); listenTo(searchCtrl); diff --git a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java index c0ce87e3890a6ffcc18499c31cbb10756bf8bdeb..1f32ec93c167e4453b512e2bf1e030de53a8001d 100644 --- a/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/OverviewBusinessGroupListController.java @@ -36,6 +36,7 @@ import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.core.gui.control.generic.dtabs.Activateable2; import org.olat.core.id.OLATResourceable; +import org.olat.core.id.Roles; import org.olat.core.id.context.BusinessControlFactory; import org.olat.core.id.context.ContextEntry; import org.olat.core.id.context.StateEntry; @@ -52,7 +53,8 @@ import org.olat.util.logging.activity.LoggingResourceable; */ public class OverviewBusinessGroupListController extends BasicController implements Activateable2 { - private final Link markedGroupsLink, myGroupsLink, openGroupsLink, searchOpenLink; + private final Link markedGroupsLink, myGroupsLink, openGroupsLink; + private Link searchOpenLink; private final SegmentViewComponent segmentView; private final VelocityContainer mainVC; @@ -81,9 +83,13 @@ public class OverviewBusinessGroupListController extends BasicController impleme openGroupsLink = LinkFactory.createLink("open.groups", mainVC, this); openGroupsLink.setElementCssClass("o_sel_group_open_groups_seg"); segmentView.addSegment(openGroupsLink, false); - searchOpenLink = LinkFactory.createLink("opengroups.search", mainVC, this); - searchOpenLink.setElementCssClass("o_sel_group_search_groups_seg"); - segmentView.addSegment(searchOpenLink, false); + + Roles roles = ureq.getUserSession().getRoles(); + if(roles.isGroupManager() || roles.isOLATAdmin()) { + searchOpenLink = LinkFactory.createLink("opengroups.search.admin", mainVC, this); + searchOpenLink.setElementCssClass("o_sel_group_search_groups_seg"); + segmentView.addSegment(searchOpenLink, false); + } putInitialPanel(mainPanel); } @@ -138,7 +144,7 @@ public class OverviewBusinessGroupListController extends BasicController impleme } else if("OwnedGroups".equals(segment)) { updateOpenGroups(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(openGroupsLink); - } else if("Search".equals(segment)) { + } else if("Search".equals(segment) && searchOpenLink != null) { updateSearch(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(searchOpenLink); } diff --git a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java index 13bd705eaf679bc15ba50d9c38f9b1a85e13c201..13f4873e02c49a74fd71b19a1662aef9006f8a9f 100644 --- a/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java +++ b/src/main/java/org/olat/group/ui/main/SearchBusinessGroupListController.java @@ -32,7 +32,7 @@ import org.olat.group.model.SearchBusinessGroupParams; public class SearchBusinessGroupListController extends AbstractBusinessGroupListController { public SearchBusinessGroupListController(UserRequest ureq, WindowControl wControl) { - super(ureq, wControl, "group_list"); + super(ureq, wControl, "group_list", true, null); } @Override