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