summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/manager
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/gitblit/manager')
-rw-r--r--src/main/java/com/gitblit/manager/FilestoreManager.java31
-rw-r--r--src/main/java/com/gitblit/manager/GitblitManager.java4
-rw-r--r--src/main/java/com/gitblit/manager/IFilestoreManager.java2
3 files changed, 31 insertions, 6 deletions
diff --git a/src/main/java/com/gitblit/manager/FilestoreManager.java b/src/main/java/com/gitblit/manager/FilestoreManager.java
index fe65e216..11108557 100644
--- a/src/main/java/com/gitblit/manager/FilestoreManager.java
+++ b/src/main/java/com/gitblit/manager/FilestoreManager.java
@@ -77,6 +77,8 @@ public class FilestoreManager implements IFilestoreManager {
private final Logger logger = LoggerFactory.getLogger(getClass());
private final IRuntimeManager runtimeManager;
+
+ private final IRepositoryManager repositoryManager;
private final IStoredSettings settings;
@@ -93,8 +95,10 @@ public class FilestoreManager implements IFilestoreManager {
@Inject
FilestoreManager(
- IRuntimeManager runtimeManager) {
+ IRuntimeManager runtimeManager,
+ IRepositoryManager repositoryManager) {
this.runtimeManager = runtimeManager;
+ this.repositoryManager = repositoryManager;
this.settings = runtimeManager.getSettings();
}
@@ -324,8 +328,29 @@ public class FilestoreManager implements IFilestoreManager {
}
@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
diff --git a/src/main/java/com/gitblit/manager/GitblitManager.java b/src/main/java/com/gitblit/manager/GitblitManager.java
index 4a385fc1..85d5c19f 100644
--- a/src/main/java/com/gitblit/manager/GitblitManager.java
+++ b/src/main/java/com/gitblit/manager/GitblitManager.java
@@ -1274,8 +1274,8 @@ public class GitblitManager implements IGitblit {
}
@Override
- public List<FilestoreModel> getAllObjects() {
- return filestoreManager.getAllObjects();
+ public List<FilestoreModel> getAllObjects(UserModel user) {
+ return filestoreManager.getAllObjects(user);
}
@Override
diff --git a/src/main/java/com/gitblit/manager/IFilestoreManager.java b/src/main/java/com/gitblit/manager/IFilestoreManager.java
index 0720650c..454331a3 100644
--- a/src/main/java/com/gitblit/manager/IFilestoreManager.java
+++ b/src/main/java/com/gitblit/manager/IFilestoreManager.java
@@ -37,7 +37,7 @@ public interface IFilestoreManager extends IManager {
FilestoreModel.Status downloadBlob(String oid, UserModel user, RepositoryModel repo, OutputStream streamOut );
- List<FilestoreModel> getAllObjects();
+ List<FilestoreModel> getAllObjects(UserModel user);
File getStorageFolder();