From f75535759570bbc4784ee8324b0d1b8dfb01766f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gmail.com>
Date: Tue, 08 Dec 2015 07:58:21 -0500
Subject: [PATCH] Merge pull request #973 from paulsputer/967-Filestore-Help

---
 src/main/java/com/gitblit/manager/FilestoreManager.java |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/manager/FilestoreManager.java b/src/main/java/com/gitblit/manager/FilestoreManager.java
index fe65e21..1110855 100644
--- a/src/main/java/com/gitblit/manager/FilestoreManager.java
+++ b/src/main/java/com/gitblit/manager/FilestoreManager.java
@@ -77,6 +77,8 @@
 	private final Logger logger = LoggerFactory.getLogger(getClass());
 
 	private final IRuntimeManager runtimeManager;
+	
+	private final IRepositoryManager repositoryManager;
 
 	private final IStoredSettings settings;
 
@@ -93,8 +95,10 @@
 
 	@Inject
 	FilestoreManager(
-			IRuntimeManager runtimeManager) {
+			IRuntimeManager runtimeManager,
+			IRepositoryManager repositoryManager) {
 		this.runtimeManager = runtimeManager;
+		this.repositoryManager = repositoryManager;
 		this.settings = runtimeManager.getSettings();
 	}
 
@@ -324,8 +328,29 @@
 	}
 
 	@Override
-	public List<FilestoreModel> getAllObjects() {
-		return new ArrayList<FilestoreModel>(fileCache.values());
+	public List<FilestoreModel> getAllObjects(UserModel user) {
+		
+		final List<RepositoryModel> viewableRepositories = repositoryManager.getRepositoryModels(user);
+		List<String> viewableRepositoryNames = new ArrayList<String>(viewableRepositories.size());
+		
+		for (RepositoryModel repository : viewableRepositories) {
+			viewableRepositoryNames.add(repository.name);
+		}
+		
+		if (viewableRepositoryNames.size() == 0) {
+			return null;
+		}
+		
+		final Collection<FilestoreModel> allFiles = fileCache.values();
+		List<FilestoreModel> userViewableFiles = new ArrayList<FilestoreModel>(allFiles.size());
+		
+		for (FilestoreModel file : allFiles) {
+			if (file.isInRepositoryList(viewableRepositoryNames)) {
+				userViewableFiles.add(file);
+			}
+		}
+		
+		return userViewableFiles;				
 	}
 
 	@Override

--
Gitblit v1.9.1