diff options
author | James Moger <james.moger@gitblit.com> | 2012-10-10 17:05:00 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2012-10-10 17:05:00 -0400 |
commit | 17363c3957dab02bf8a5ab3a89dcace147c4f20e (patch) | |
tree | c2002694c5efa9fb2d441abd7ee02f374cd6a97e | |
parent | 5d7545652a6529c9076f67acd75f7a977c8a44a6 (diff) | |
download | gitblit-17363c3957dab02bf8a5ab3a89dcace147c4f20e.tar.gz gitblit-17363c3957dab02bf8a5ab3a89dcace147c4f20e.zip |
Fixed bug where repository ownership was not updated on rename user
-rw-r--r-- | docs/04_releases.mkd | 1 | ||||
-rw-r--r-- | src/com/gitblit/GitBlit.java | 16 |
2 files changed, 17 insertions, 0 deletions
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!");
|