From 60676ffcfd63f24c81b12740627e472118c19a2b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 03 Jun 2014 15:09:28 -0400
Subject: [PATCH] Hide gitignore selection if there are no gitignore resources
---
src/main/java/com/gitblit/manager/RepositoryManager.java | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/gitblit/manager/RepositoryManager.java b/src/main/java/com/gitblit/manager/RepositoryManager.java
index 40e3864..31d6b34 100644
--- a/src/main/java/com/gitblit/manager/RepositoryManager.java
+++ b/src/main/java/com/gitblit/manager/RepositoryManager.java
@@ -684,7 +684,8 @@
// http://stackoverflow.com/questions/17183110
repositoryName = repositoryName.replace("%7E", "~").replace("%7e", "~");
- if (!repositoryListCache.containsKey(repositoryName)) {
+ String repositoryKey = repositoryName.toLowerCase();
+ if (!repositoryListCache.containsKey(repositoryKey)) {
RepositoryModel model = loadRepositoryModel(repositoryName);
if (model == null) {
return null;
@@ -694,7 +695,7 @@
}
// cached model
- RepositoryModel model = repositoryListCache.get(repositoryName.toLowerCase());
+ RepositoryModel model = repositoryListCache.get(repositoryKey);
if (gcExecutor.isCollectingGarbage(model.name)) {
// Gitblit is busy collecting garbage, use our cached model
@@ -1535,6 +1536,17 @@
}
/**
+ * Returns true if the repository can be deleted.
+ *
+ * @return true if the repository can be deleted
+ */
+ @Override
+ public boolean canDelete(RepositoryModel repository) {
+ return settings.getBoolean(Keys.web.allowDeletingNonEmptyRepositories, true)
+ || !repository.hasCommits;
+ }
+
+ /**
* Deletes the repository from the file system and removes the repository
* permission from all repository users.
*
@@ -1555,6 +1567,12 @@
*/
@Override
public boolean deleteRepository(String repositoryName) {
+ RepositoryModel repository = getRepositoryModel(repositoryName);
+ if (!canDelete(repository)) {
+ logger.warn("Attempt to delete {} rejected!", repositoryName);
+ return false;
+ }
+
try {
close(repositoryName);
// clear the repository cache
--
Gitblit v1.9.1