diff --git a/src/main/java/org/olat/admin/UserAdminMainController.java b/src/main/java/org/olat/admin/UserAdminMainController.java
index 8a2503026c03a6718c36447333ad09a3784f7e75..7e04edf2f3691c587cd54c6b06ec10a9b2813caf 100644
--- a/src/main/java/org/olat/admin/UserAdminMainController.java
+++ b/src/main/java/org/olat/admin/UserAdminMainController.java
@@ -40,7 +40,6 @@ import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.BaseSecurityModule;
 import org.olat.basesecurity.Constants;
 import org.olat.basesecurity.GroupRoles;
-import org.olat.basesecurity.PermissionOnResourceable;
 import org.olat.basesecurity.SecurityGroup;
 import org.olat.basesecurity.events.SingleIdentityChosenEvent;
 import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
@@ -346,8 +345,8 @@ public class UserAdminMainController extends MainLayoutBasicController implement
 		else if (uobject.equals("coauthors")) {
 			activatePaneInDetailView = "edit.uroles";
 			// special case: use user search controller and search for all users that have author rights
-			PermissionOnResourceable[] permissions = {new PermissionOnResourceable(Constants.PERMISSION_HASROLE, Constants.ORESOURCE_AUTHOR)};
-			UsermanagerUserSearchController myCtr = new UsermanagerUserSearchController(ureq, bwControl,null, permissions, null, null, null, Identity.STATUS_VISIBLE_LIMIT, true);
+			List<Identity> resourceOwners = repositoryService.getIdentitiesWithRole(GroupRoles.owner.name());
+			UsermanagerUserSearchController myCtr = new UsermanagerUserSearchController(ureq, bwControl, resourceOwners, Identity.STATUS_VISIBLE_LIMIT, true);
 			addToHistory(ureq, bwControl);
 			// now subtract users that are in the author group to get the co-authors
 			SecurityGroup[] secGroup = {securityManager.findSecurityGroupByName(Constants.GROUP_AUTHORS)};
@@ -359,8 +358,22 @@ public class UserAdminMainController extends MainLayoutBasicController implement
 		}
 		else if (uobject.equals("resourceowners")) {
 			activatePaneInDetailView = "edit.uroles";
-			PermissionOnResourceable[] permissions = {new PermissionOnResourceable(Constants.PERMISSION_HASROLE, Constants.ORESOURCE_AUTHOR)};
-			contentCtr = new UsermanagerUserSearchController(ureq, bwControl,null, permissions, null, null, null, Identity.STATUS_VISIBLE_LIMIT, true);
+			// First get all resource owners (co-authors) ...
+			List<Identity> resourceOwners = repositoryService.getIdentitiesWithRole(GroupRoles.owner.name());
+			UsermanagerUserSearchController myCtr = new UsermanagerUserSearchController(ureq, bwControl, resourceOwners, Identity.STATUS_VISIBLE_LIMIT, true);
+			// ... now add users that are in the author group but don't own a resource yet
+			SecurityGroup[] secGroup = {securityManager.findSecurityGroupByName(Constants.GROUP_AUTHORS)};
+			List<Identity> identitiesFromAuthorGroup = securityManager.getVisibleIdentitiesByPowerSearch(null, null, true, secGroup , null, null, null, null);
+			myCtr.addIdentitiesToSearchResult(ureq, identitiesFromAuthorGroup);
+			contentCtr = myCtr;
+			addToHistory(ureq, bwControl);
+			listenTo(contentCtr);
+			return contentCtr.getInitialComponent();
+		}
+		else if (uobject.equals("courseparticipants")) {
+			activatePaneInDetailView = "edit.courses";
+			List<Identity> resourceOwners = repositoryService.getIdentitiesWithRole(GroupRoles.participant.name());
+			contentCtr = new UsermanagerUserSearchController(ureq, bwControl, resourceOwners, Identity.STATUS_VISIBLE_LIMIT, true);
 			addToHistory(ureq, bwControl);
 			listenTo(contentCtr);
 			return contentCtr.getInitialComponent();
@@ -639,22 +652,29 @@ public class UserAdminMainController extends MainLayoutBasicController implement
 			gtnChild.setUserObject("resourceowners");
 			gtnChild.setAltText(translator.translate("menu.resourceowners.alt"));
 			gtn3.addChild(gtnChild);
+
 		}
 
+		gtnChild = new GenericTreeNode();		
+		gtnChild.setTitle(translator.translate("menu.coursecoach"));
+		gtnChild.setUserObject("coursecoach");
+		gtnChild.setAltText(translator.translate("menu.coursecoach.alt"));
+		gtn3.addChild(gtnChild);
+
+		gtnChild = new GenericTreeNode();		
+		gtnChild.setTitle(translator.translate("menu.courseparticipants"));
+		gtnChild.setUserObject("courseparticipants");
+		gtnChild.setAltText(translator.translate("menu.courseparticipants.alt"));
+		gtn3.addChild(gtnChild);
+
 		Boolean canGroupmanagers = BaseSecurityModule.USERMANAGER_CAN_MANAGE_GROUPMANAGERS;
-		if (canGroupmanagers.booleanValue() || isOlatAdmin) {
+		if (canGroupmanagers.booleanValue() || isOlatAdmin) {			
 			gtnChild = new GenericTreeNode();		
 			gtnChild.setTitle(translator.translate("menu.groupmanagergroup"));
 			gtnChild.setUserObject("groupmanagergroup");
 			gtnChild.setAltText(translator.translate("menu.groupmanagergroup.alt"));
 			gtn3.addChild(gtnChild);
-			
-			gtnChild = new GenericTreeNode();		
-			gtnChild.setTitle(translator.translate("menu.coursecoach"));
-			gtnChild.setUserObject("coursecoach");
-			gtnChild.setAltText(translator.translate("menu.coursecoach.alt"));
-			gtn3.addChild(gtnChild);
-			
+
 			gtnChild = new GenericTreeNode();		
 			gtnChild.setTitle(translator.translate("menu.groupcoach"));
 			gtnChild.setUserObject("groupcoach");
diff --git a/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
index d590773eb7df3e3f0fceb1fe44a076978f326939..5db3ab42e513b589c881d3e6afeff3329f23840d 100644
--- a/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
@@ -27,7 +27,9 @@ menu.caches.alt=Caches
 menu.config=Core Konfiguration
 menu.config.alt=Konfigurieren Sie ihr Core Funktionen
 menu.coursecoach=Kursbetreuer
-menu.coursecoach.alt=Kursbetreuer
+menu.coursecoach.alt=Alle Benutzer die in mindestens einem Kurs als Betreuer eingetragen sind
+menu.courseparticipants=Kursteilnehmer
+menu.courseparticipants.alt=Alle Benutzer die in mindestens einem Kurs als Teilnehmer eingetragen sind
 menu.cluster=Clustering
 menu.cluster.alt=Clustering
 menu.created.lastmonth=Neu seit 1 Monat
diff --git a/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
index 69a43bda538b4a540d350b9c4ec089249d06e06c..4e8729062a88b52dc933fccf473e607a5a507dd6 100644
--- a/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
@@ -29,7 +29,9 @@ menu.coauthors.alt=Manage all co-authors that are not part of the author group
 menu.config=Core functions
 menu.config.alt=Configure your system's core functions
 menu.coursecoach=Course coach
-menu.coursecoach.alt=Course coach
+menu.coursecoach.alt=All users that have the coach role in at least one course
+menu.courseparticipants=Course participants
+menu.courseparticipants.alt=All users that are enrolled as participants in at least one course
 menu.created.lastmonth=New since last month
 menu.created.lastmonth.alt=Users that have been created within the last month
 menu.created.lastweek=New since last week
diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
index b93c15e2c5050c561a82258677cb18fa29c388d2..6135e815d2644d1540f0e6b28c18e79daa8e36cf 100644
--- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
+++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
@@ -241,6 +241,7 @@ public class UsermanagerUserSearchController extends BasicController implements
 		userListVC.contextPut("showBackButton", Boolean.FALSE);
 		userListVC.contextPut("showTitle", Boolean.TRUE);
 
+		this.identitiesList = identitiesList;
 		initUserListCtr(ureq, identitiesList, status);
 		userListVC.put("userlist", tableCtr.getInitialComponent());
 		userListVC.contextPut("emptyList", (identitiesList.size() == 0 ? Boolean.TRUE : Boolean.FALSE));
@@ -343,6 +344,31 @@ public class UsermanagerUserSearchController extends BasicController implements
 		userListVC.put("userlist", tableCtr.getInitialComponent());
 	}
 
+	/**
+	 * Add the given identities to the list of identities in the table model 
+	 * and reinitialize the table controller
+	 * 
+	 * @param ureq
+	 * @param tobeAddedIdentities
+	 */
+	public void addIdentitiesToSearchResult(UserRequest ureq, List<Identity> tobeAddedIdentities) {
+		for (Identity toBeAdded : tobeAddedIdentities) {
+			boolean found = false;
+			for (Identity original : identitiesList) {
+				if (original.getKey().equals(toBeAdded.getKey())) {
+					found = true;
+					break;
+				}
+			}
+			if (!found) {
+				identitiesList.add(toBeAdded);
+			}
+		}
+		initUserListCtr(ureq, identitiesList, null);
+		userListVC.put("userlist", tableCtr.getInitialComponent());		
+	}
+
+	
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.components.Component,