diff options
author | Paul Martin <paul@paulsputer.com> | 2015-12-07 23:09:26 +0000 |
---|---|---|
committer | Paul Martin <paul@paulsputer.com> | 2015-12-07 23:09:26 +0000 |
commit | 697905cbf3b6fc1d8f22322a4f403b4abe2f0c0a (patch) | |
tree | 6432ad5743f8a4ab2e636da9300774b897a62e0a /src/main/java/com/gitblit/manager/FilestoreManager.java | |
parent | 0aecfc10a08474a8ae19c2a46ea9ed77d75b2f6e (diff) | |
download | gitblit-697905cbf3b6fc1d8f22322a4f403b4abe2f0c0a.tar.gz gitblit-697905cbf3b6fc1d8f22322a4f403b4abe2f0c0a.zip |
fix for #967 filestore menu for all users
+ Filestore listing filtered by user view permissions
+ Configuration help for filestore relocated to website files
+ Added migration example
Diffstat (limited to 'src/main/java/com/gitblit/manager/FilestoreManager.java')
-rw-r--r-- | 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 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 |