diff --git a/src/main/java/org/olat/repository/RepositoryModule.java b/src/main/java/org/olat/repository/RepositoryModule.java
index 0fde493a66aa100c47bfb8f7907c9a1b6ff23c52..beab18a1752b9cfa3d665a59459126868ffaaae0 100644
--- a/src/main/java/org/olat/repository/RepositoryModule.java
+++ b/src/main/java/org/olat/repository/RepositoryModule.java
@@ -25,6 +25,7 @@ import org.olat.core.configuration.AbstractOLATModule;
 import org.olat.core.configuration.PersistedProperties;
 import org.olat.core.id.Roles;
 import org.olat.core.id.context.SiteContextEntryControllerCreator;
+import org.olat.core.util.StringHelper;
 import org.olat.group.BusinessGroupModule;
 import org.olat.repository.site.RepositorySite;
 
@@ -39,6 +40,11 @@ import org.olat.repository.site.RepositorySite;
  */
 public class RepositoryModule extends AbstractOLATModule {
 	
+	
+
+	private boolean listAllCourses;
+	private boolean listAllResourceTypes;
+	
 	private BusinessGroupModule groupModule;
 	
 	/**
@@ -56,6 +62,14 @@ public class RepositoryModule extends AbstractOLATModule {
 		NewControllerFactory.getInstance().addContextEntryControllerCreator(RepositorySite.class.getSimpleName(),
 				new SiteContextEntryControllerCreator(RepositorySite.class));
 		
+		String listAllCoursesStr = getStringPropertyValue("listallcourse", true);
+		if(StringHelper.containsNonWhitespace(listAllCoursesStr)) {
+			listAllCourses = "true".equals(listAllCoursesStr);
+		}
+		String listAllResourceTypesStr = getStringPropertyValue("listallresourcetypes", true);
+		if(StringHelper.containsNonWhitespace(listAllResourceTypesStr)) {
+			listAllResourceTypes = "true".equals(listAllResourceTypesStr);
+		}
 	}
 
 	/**
@@ -71,7 +85,10 @@ public class RepositoryModule extends AbstractOLATModule {
 	 */
 	@Override
 	protected void initDefaultProperties() {
-	// nothing to init
+		String listAllCoursesStr = getStringConfigParameter("listallcourse", "true", false);
+		listAllCourses = "true".equals(listAllCoursesStr);
+		String listAllResourceTypesStr = getStringConfigParameter("listallresourcetypes", "true", false);
+		listAllResourceTypes = "true".equals(listAllResourceTypesStr);
 	}
 
 	/**
@@ -79,7 +96,7 @@ public class RepositoryModule extends AbstractOLATModule {
 	 */
 	@Override
 	protected void initFromChangedProperties() {
-	// nothing to init
+		init();
 	}
 
 	@Override
@@ -95,4 +112,19 @@ public class RepositoryModule extends AbstractOLATModule {
 		return groupModule.isMandatoryEnrolmentEmail(roles);
 	}
 
-}
+	public boolean isListAllCourses() {
+		return listAllCourses;
+	}
+
+	public void setListAllCourses(boolean listAllCourses) {
+		setBooleanProperty("listallcourse", listAllCourses, true);
+	}
+
+	public boolean isListAllResourceTypes() {
+		return listAllResourceTypes;
+	}
+
+	public void setListAllResourceTypes(boolean listAllResourceTypes) {
+		setBooleanProperty("listallresourcetypes", listAllResourceTypes, true);
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/_spring/repositoryContext.xml b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
index 6fa218e205037f3227d811484d792fd6419acb62..e171dfb7c6cfe9cbe5f9bd6c2e789400e160b3b9 100644
--- a/src/main/java/org/olat/repository/_spring/repositoryContext.xml
+++ b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 <bean id="repositoryModule" class="org.olat.repository.RepositoryModule" depends-on="userModule">
 	<property name="groupModule" ref="businessGroupModule"/>
@@ -15,12 +15,17 @@
 	</property>
 </bean>
 
-<bean  class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
-        <property name="targetObject" ref="repositoryModule" />
-        <property name="targetMethod" value="init" />
-</bean>
-
-		
-<bean id="repositoryManager" class="org.olat.repository.RepositoryManager"/>
+	<bean  class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+		<property name="targetObject" ref="repositoryModule" />
+		<property name="targetMethod" value="init" />
+		<property name="arguments">
+			<value>
+				listallcourse=${repo.listallcourses.enabled}
+				listallresourcetypes=${repo.listallresourcetypes.enabled}
+			</value>
+		</property>
+	</bean>
+	
+	<bean id="repositoryManager" class="org.olat.repository.RepositoryManager"/>
 
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
index 9553a9ed3ae0af4cd02338c11eb7ad31d6290f44..7bd294479ba8a65d097947d15f11ec7d93a78060 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryMainController.java
@@ -77,6 +77,7 @@ import org.olat.portfolio.EPTemplateMapResource;
 import org.olat.portfolio.PortfolioModule;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
+import org.olat.repository.RepositoryModule;
 import org.olat.repository.RepositoryTableModel;
 import org.olat.repository.delete.TabbedPaneController;
 import org.olat.repository.handlers.RepositoryHandler;
@@ -148,6 +149,7 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 	private Controller creationWizardController;
 	private final PortfolioModule portfolioModule;
 	private final CatalogModule catalogModule;
+	private final RepositoryModule repositoryModule;
 
 	/**
 	 * The check for author rights is executed on construction time and then
@@ -162,8 +164,9 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 		if (log.isDebug()) {
 			log.debug("Constructing ReposityMainController for user::" + ureq.getIdentity());
 		}
-		portfolioModule = (PortfolioModule) CoreSpringFactory.getBean("portfolioModule");
+		portfolioModule = CoreSpringFactory.getImpl(PortfolioModule.class);
 		catalogModule = CoreSpringFactory.getImpl(CatalogModule.class);
+		repositoryModule = CoreSpringFactory.getImpl(RepositoryModule.class);
 
 		// use i18n from RepositoryManager level
 		setTranslator(Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale()));
@@ -301,10 +304,14 @@ public class RepositoryMainController extends MainLayoutBasicController implemen
 				rootNode.addChild(node);
 			}
 		}
-		node = new GenericTreeNode(translate("search.course"), "search.course");
-		node.setCssClass("o_sel_repo_course");
-		rootNode.addChild(node);
-		if (bIsAuthor) {
+		
+		if(repositoryModule.isListAllCourses()) {
+			node = new GenericTreeNode(translate("search.course"), "search.course");
+			node.setCssClass("o_sel_repo_course");
+			rootNode.addChild(node);
+		}
+		
+		if (bIsAuthor && repositoryModule.isListAllResourceTypes()) {
 			//cp, scorm, wiki, podcast, portfolie, test, questionn, resource folder, glossary
 			node = new GenericTreeNode(translate("search.cp"), "search.cp");
 			node.setCssClass("o_sel_repo_cp");
diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties
index dfbdfc9b8242bd3fe692bba26d3bd40c371981f6..39d0f20e92ef540dcc04d5690a1938cbee964c10 100644
--- a/src/main/resources/serviceconfig/olat.properties
+++ b/src/main/resources/serviceconfig/olat.properties
@@ -385,6 +385,13 @@ repo.catalog.enable=true
 my.courses.enable=false
 ###
 
+# When repo.listallcourses.enabled=true, the list of all courses are show as it is today.
+# When false, the menu item does not show up.
+repo.listallcourses.enabled=true
+# When repo.listallresourcetypes.enabled=true and the user is author, all other resource
+# types appear as separate menu items. When set to false, the menu items are not show to any user.
+repo.listallresourcetypes.enabled=true
+
 # The course database: a REST key-value store that can be used in single pages to 
 # implement all kind of fancy things that need a storage, e.g. build your own 
 # survey or "I've read this" checkbox. Course authors have the possibility do