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