From 661db6c2948e4848b29645c66e17cbfcaa780ae0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 23 Jan 2013 07:52:20 -0500 Subject: [PATCH] Revised multiple owners contribution --- src/com/gitblit/GitBlit.java | 48 ++++++++++++++++++------------------------------ 1 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index a607bd8..e4d81ce 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -109,7 +109,6 @@ import com.gitblit.utils.JGitUtils; import com.gitblit.utils.JsonUtils; import com.gitblit.utils.MetricUtils; -import com.gitblit.utils.MultiConfigUtil; import com.gitblit.utils.ObjectCache; import com.gitblit.utils.StringUtils; import com.gitblit.utils.TimeUtils; @@ -181,8 +180,6 @@ private TimeZone timezone; private FileBasedConfig projectConfigs; - - private MultiConfigUtil multiConfigUtil = new MultiConfigUtil(); public GitBlit() { if (gitblit == null) { @@ -825,7 +822,7 @@ // TODO reconsider ownership as a user property // manually specify personal repository ownerships for (RepositoryModel rm : repositoryListCache.values()) { - if (rm.isUsersPersonalRepository(user.username) || rm.isRepoAdministrator(user.username)) { + if (rm.isUsersPersonalRepository(user.username) || rm.isOwner(user.username)) { RegistrantAccessPermission rp = new RegistrantAccessPermission(rm.name, AccessPermission.REWIND, PermissionType.OWNER, RegistrantType.REPOSITORY, null, false); // user may be owner of a repository to which they've inherited @@ -939,14 +936,14 @@ for (RepositoryModel model : getRepositoryModels(user)) { if (model.isUsersPersonalRepository(username)) { // personal repository - model.addRepoAdministrator(user.username); + model.addOwner(user.username); String oldRepositoryName = model.name; model.name = "~" + user.username + model.name.substring(model.projectPath.length()); model.projectPath = "~" + user.username; updateRepositoryModel(oldRepositoryName, model, false); - } else if (model.isRepoAdministrator(username)) { + } else if (model.isOwner(username)) { // common/shared repo - model.addRepoAdministrator(user.username); + model.addOwner(user.username); updateRepositoryModel(model.name, model, false); } } @@ -1665,7 +1662,7 @@ if (config != null) { model.description = getConfig(config, "description", ""); - model.addRepoAdministrators(multiConfigUtil.convertStringToSet(getConfig(config, "owner", ""))); + model.addOwners(ArrayUtils.fromString(getConfig(config, "owner", ""))); model.useTickets = getConfig(config, "useTickets", false); model.useDocs = getConfig(config, "useDocs", false); model.allowForks = getConfig(config, "allowForks", true); @@ -2172,7 +2169,7 @@ public void updateConfiguration(Repository r, RepositoryModel repository) { StoredConfig config = r.getConfig(); config.setString(Constants.CONFIG_GITBLIT, null, "description", repository.description); - config.setString(Constants.CONFIG_GITBLIT, null, "owner", multiConfigUtil.convertCollectionToSingleLineString(repository.getRepoAdministrators())); + config.setString(Constants.CONFIG_GITBLIT, null, "owner", ArrayUtils.toString(repository.owners)); config.setBoolean(Constants.CONFIG_GITBLIT, null, "useTickets", repository.useTickets); config.setBoolean(Constants.CONFIG_GITBLIT, null, "useDocs", repository.useDocs); config.setBoolean(Constants.CONFIG_GITBLIT, null, "allowForks", repository.allowForks); @@ -3082,15 +3079,9 @@ } // schedule lucene engine - boolean branchIndexingActivated = settings.getBoolean( - Keys.git.branchIndexingActivated, true); - logger.info("Branch indexing is " - + (branchIndexingActivated ? "" : "not") + " activated"); - if (branchIndexingActivated) { - logger.info("Lucene executor is scheduled to process indexed branches every 2 minutes."); - scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, - TimeUnit.MINUTES); - } + logger.info("Lucene executor is scheduled to process indexed branches every 2 minutes."); + scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, 2, TimeUnit.MINUTES); + // schedule gc engine if (gcExecutor.isReady()) { logger.info("GC executor is scheduled to scan repositories every 24 hours."); @@ -3258,23 +3249,20 @@ // create a Gitblit repository model for the clone RepositoryModel cloneModel = repository.cloneAs(cloneName); - // owner has REWIND/RW+ permissions - cloneModel.addRepoAdministrator(user.username); + // owner has REWIND/RW+ permissions + cloneModel.addOwner(user.username); updateRepositoryModel(cloneName, cloneModel, false); // add the owner of the source repository to the clone's access list - Set<String> repoAdministrators = repository.getRepoAdministrators(); - if (repoAdministrators != null) { - for (String repoAdministrator : repoAdministrators) { - if (!StringUtils.isEmpty(repoAdministrator)) { - UserModel originOwner = getUserModel(repoAdministrator); - if (originOwner != null) { - originOwner.setRepositoryPermission(cloneName, AccessPermission.CLONE); - updateUserModel(originOwner.username, originOwner, false); - } + if (!ArrayUtils.isEmpty(repository.owners)) { + for (String owner : repository.owners) { + UserModel originOwner = getUserModel(owner); + if (originOwner != null) { + originOwner.setRepositoryPermission(cloneName, AccessPermission.CLONE); + updateUserModel(originOwner.username, originOwner, false); } } - } + } // grant origin's user list clone permission to fork List<String> users = getRepositoryUsers(repository); -- Gitblit v1.9.1