From 99b43dffe86b635e97f625157083cee37ee921bf Mon Sep 17 00:00:00 2001 From: peto268 <peto268@gmail.com> Date: Thu, 08 May 2014 13:40:41 -0400 Subject: [PATCH] Added option to disable deleting of non empty repositories through the user interface --- src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java | 28 ++++++++++++++++++++++------ 1 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java b/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java index be5d960..40cd77e 100644 --- a/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/RepositoriesPanel.java @@ -334,20 +334,36 @@ @Override public void onClick() { - if (app().repositories().deleteRepositoryModel(entry)) { + // refresh the model + RepositoryModel model = app().repositories().getRepositoryModel(entry.name); + if (isDeleteAllowed(model) && + app().repositories().deleteRepositoryModel(model)) { if (dp instanceof SortableRepositoriesProvider) { - info(MessageFormat.format(getString("gb.repositoryDeleted"), entry)); - ((SortableRepositoriesProvider) dp).remove(entry); + info(MessageFormat.format(getString("gb.repositoryDeleted"), model)); + ((SortableRepositoriesProvider) dp).remove(model); } else { setResponsePage(getPage().getClass(), getPage().getPageParameters()); } } else { - error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), entry)); + error(MessageFormat.format(getString("gb.repositoryDeleteFailed"), model)); } } + + @Override + public boolean isEnabled() { + return isDeleteAllowed(entry); + } + + private boolean isDeleteAllowed( + final RepositoryModel model) { + return app().settings().getBoolean(Keys.web.allowDeletingNonEmptyRepositories, true) + || !model.hasCommits; + } }; - deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format( - getString("gb.deleteRepository"), entry))); + if (deleteLink.isEnabled()) { + deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format( + getString("gb.deleteRepository"), entry))); + } repositoryLinks.add(deleteLink); row.add(repositoryLinks); } else if (showOwner) { -- Gitblit v1.9.1