From eecaad8b8e2c447429c31a01d49260ddd6b4ee03 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 16 Apr 2016 17:35:32 -0400 Subject: [PATCH] Proof of concept #1026 --- src/main/java/com/gitblit/manager/FilestoreManager.java | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gitblit/manager/FilestoreManager.java b/src/main/java/com/gitblit/manager/FilestoreManager.java index fe65e21..6ed7c92 100644 --- a/src/main/java/com/gitblit/manager/FilestoreManager.java +++ b/src/main/java/com/gitblit/manager/FilestoreManager.java @@ -77,7 +77,7 @@ private final Logger logger = LoggerFactory.getLogger(getClass()); private final IRuntimeManager runtimeManager; - + private final IStoredSettings settings; public static final int UNDEFINED_SIZE = -1; @@ -92,8 +92,7 @@ @Inject - FilestoreManager( - IRuntimeManager runtimeManager) { + public FilestoreManager(IRuntimeManager runtimeManager) { this.runtimeManager = runtimeManager; this.settings = runtimeManager.getSettings(); } @@ -324,8 +323,28 @@ } @Override - public List<FilestoreModel> getAllObjects() { - return new ArrayList<FilestoreModel>(fileCache.values()); + public List<FilestoreModel> getAllObjects(List<RepositoryModel> viewableRepositories) { + + 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