From 17363c3957dab02bf8a5ab3a89dcace147c4f20e Mon Sep 17 00:00:00 2001 From: James Moger Date: Wed, 10 Oct 2012 17:05:00 -0400 Subject: [PATCH] Fixed bug where repository ownership was not updated on rename user --- docs/04_releases.mkd | 1 + src/com/gitblit/GitBlit.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd index 416aebed..aad6463f 100644 --- a/docs/04_releases.mkd +++ b/docs/04_releases.mkd @@ -11,6 +11,7 @@ If you are updating from an earlier release AND you have indexed branches with t #### fixes +- Fixed bug where repository ownership was not updated on rename user - Fixed bug in create/rename repository if you explicitly specified the alias for the root group (e.g. main/myrepo) (issue 143) - Wrapped Markdown parser with improved exception handler (issue 142) - Fixed duplicate entries in repository cache (issue 140) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 8c6d9eba..bf9b1ed1 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -642,6 +642,22 @@ public class GitBlit implements ServletContextListener { "Failed to rename ''{0}'' because ''{1}'' already exists.", username, user.username)); } + + // rename repositories and owner fields for all repositories + for (RepositoryModel model : getRepositoryModels(user)) { + if (model.isUsersPersonalRepository(username)) { + // personal repository + model.owner = 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.isOwner(username)) { + // common/shared repo + model.owner = user.username; + updateRepositoryModel(model.name, model, false); + } + } } if (!userService.updateUserModel(username, user)) { throw new GitBlitException(isCreate ? "Failed to add user!" : "Failed to update user!"); -- 2.39.5