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 /src/com/gitblit | |
parent | 5d7545652a6529c9076f67acd75f7a977c8a44a6 (diff) | |
download | gitblit-17363c3957dab02bf8a5ab3a89dcace147c4f20e.tar.gz gitblit-17363c3957dab02bf8a5ab3a89dcace147c4f20e.zip |
Fixed bug where repository ownership was not updated on rename user
Diffstat (limited to 'src/com/gitblit')
-rw-r--r-- | src/com/gitblit/GitBlit.java | 16 |
1 files changed, 16 insertions, 0 deletions
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!");
|