summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-06-06 17:00:21 -0400
committerJames Moger <james.moger@gitblit.com>2012-06-06 17:00:21 -0400
commit94dcbd617f3d06ca294d5d151390698e4bddd2cc (patch)
treecd69a6c5a77ed34e8ec26e456fd75acc0b859f6d
parent3f8cd414769b513a5b0815e0da21f19fe4b1f2d8 (diff)
downloadgitblit-94dcbd617f3d06ca294d5d151390698e4bddd2cc.tar.gz
gitblit-94dcbd617f3d06ca294d5d151390698e4bddd2cc.zip
Implemented default access restriction (issue 88)
-rw-r--r--distrib/gitblit.properties10
-rw-r--r--docs/04_releases.mkd2
-rw-r--r--src/com/gitblit/GitBlit.java2
-rw-r--r--src/com/gitblit/client/EditRepositoryDialog.java4
-rw-r--r--src/com/gitblit/client/GitblitClient.java9
-rw-r--r--src/com/gitblit/client/RepositoriesPanel.java1
-rw-r--r--src/com/gitblit/wicket/pages/EditRepositoryPage.java5
7 files changed, 31 insertions, 2 deletions
diff --git a/distrib/gitblit.properties b/distrib/gitblit.properties
index 6353696e..58833c0f 100644
--- a/distrib/gitblit.properties
+++ b/distrib/gitblit.properties
@@ -37,6 +37,16 @@ git.enableGitServlet = true
# SINCE 0.9.0
git.onlyAccessBareRepositories = false
+# The default access restriction for new repositories.
+# Valid values are NONE, PUSH, CLONE, VIEW
+# NONE = anonymous view, clone, & push
+# PUSH = anonymous view & clone and authenticated push
+# CLONE = anonymous view, authenticated clone & push
+# VIEW = authenticated view, clone, & push
+#
+# SINCE 1.0.0
+git.defaultAccessRestriction = NONE
+
#
# Groovy Integration
#
diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd
index 8a24acfc..9e61a824 100644
--- a/docs/04_releases.mkd
+++ b/docs/04_releases.mkd
@@ -16,6 +16,8 @@
#### additions
+- Added default access restriction. Applies to new repositories and repositories that have not been configured with Gitblit. (issue 88)
+ **New:** *git.defaultAccessRestriction = NONE*
- Added LDAP User Service with many new *realm.ldap* keys (Github/jcrygier)
- Added support for custom repository properties for Groovy hooks (Github/jcrygier)
- Added script to facilitate proxy environment setup on Linux (Github/mragab)
diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java
index a86cfd7f..969dc537 100644
--- a/src/com/gitblit/GitBlit.java
+++ b/src/com/gitblit/GitBlit.java
@@ -849,7 +849,7 @@ public class GitBlit implements ServletContextListener {
model.useTickets = getConfig(config, "useTickets", false);
model.useDocs = getConfig(config, "useDocs", false);
model.accessRestriction = AccessRestrictionType.fromName(getConfig(config,
- "accessRestriction", null));
+ "accessRestriction", settings.getString(Keys.git.defaultAccessRestriction, null)));
model.showRemoteBranches = getConfig(config, "showRemoteBranches", false);
model.isFrozen = getConfig(config, "isFrozen", false);
model.showReadme = getConfig(config, "showReadme", false);
diff --git a/src/com/gitblit/client/EditRepositoryDialog.java b/src/com/gitblit/client/EditRepositoryDialog.java
index 96c0dd1f..f6a315be 100644
--- a/src/com/gitblit/client/EditRepositoryDialog.java
+++ b/src/com/gitblit/client/EditRepositoryDialog.java
@@ -487,6 +487,10 @@ public class EditRepositoryDialog extends JDialog {
JOptionPane.showMessageDialog(EditRepositoryDialog.this, message,
Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
}
+
+ public void setAccessRestriction(AccessRestrictionType restriction) {
+ this.accessRestriction.setSelectedItem(restriction);
+ }
public void setUsers(String owner, List<String> all, List<String> selected) {
ownerField.setModel(new DefaultComboBoxModel(all.toArray()));
diff --git a/src/com/gitblit/client/GitblitClient.java b/src/com/gitblit/client/GitblitClient.java
index 09bcaab9..ed5a1337 100644
--- a/src/com/gitblit/client/GitblitClient.java
+++ b/src/com/gitblit/client/GitblitClient.java
@@ -28,6 +28,7 @@ import java.util.Set;
import java.util.TreeSet;
import com.gitblit.Constants;
+import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.GitBlitException.ForbiddenException;
import com.gitblit.GitBlitException.NotAllowedException;
import com.gitblit.GitBlitException.UnauthorizedException;
@@ -185,6 +186,14 @@ public class GitblitClient implements Serializable {
return sb.toString();
}
}
+
+ public AccessRestrictionType getDefaultAccessRestriction() {
+ String restriction = null;
+ if (settings.hasKey(Keys.git.defaultAccessRestriction)) {
+ restriction = settings.get(Keys.git.defaultAccessRestriction).currentValue;
+ }
+ return AccessRestrictionType.fromName(restriction);
+ }
/**
* Returns the list of pre-receive scripts the repository inherited from the
diff --git a/src/com/gitblit/client/RepositoriesPanel.java b/src/com/gitblit/client/RepositoriesPanel.java
index 7cff4b68..c5d0d35b 100644
--- a/src/com/gitblit/client/RepositoriesPanel.java
+++ b/src/com/gitblit/client/RepositoriesPanel.java
@@ -357,6 +357,7 @@ public abstract class RepositoriesPanel extends JPanel {
protected void createRepository() {
EditRepositoryDialog dialog = new EditRepositoryDialog(gitblit.getProtocolVersion());
dialog.setLocationRelativeTo(RepositoriesPanel.this);
+ dialog.setAccessRestriction(gitblit.getDefaultAccessRestriction());
dialog.setUsers(null, gitblit.getUsernames(), null);
dialog.setTeams(gitblit.getTeamnames(), null);
dialog.setRepositories(gitblit.getRepositories());
diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index e057e2a2..572f650d 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -72,7 +72,10 @@ public class EditRepositoryPage extends RootSubPage {
// create constructor
super();
isCreate = true;
- setupPage(new RepositoryModel());
+ RepositoryModel model = new RepositoryModel();
+ String restriction = GitBlit.getString(Keys.git.defaultAccessRestriction, null);
+ model.accessRestriction = AccessRestrictionType.fromName(restriction);
+ setupPage(model);
}
public EditRepositoryPage(PageParameters params) {