From 72cb19b84e87e63770391a37ea3872f963574869 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 21 Oct 2012 22:04:35 -0400
Subject: [PATCH] Implemented optional create-on-push
---
src/com/gitblit/models/UserModel.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index fc9cbfb..7995f7e 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -364,6 +364,28 @@
}
return false;
}
+
+ /**
+ * Returns true if the user is allowed to create the specified repository
+ * on-push if the repository does not already exist.
+ *
+ * @param repository
+ * @return true if the user can create the repository
+ */
+ public boolean canCreateOnPush(String repository) {
+ if (canAdmin()) {
+ // admins can create any repository
+ return true;
+ }
+ if (canCreate) {
+ String projectPath = StringUtils.getFirstPathElement(repository);
+ if (!StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username)) {
+ // personal repository
+ return true;
+ }
+ }
+ return false;
+ }
public boolean isTeamMember(String teamname) {
for (TeamModel team : teams) {
--
Gitblit v1.9.1