diff options
author | James Moger <james.moger@gitblit.com> | 2011-10-22 09:48:17 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2011-10-22 09:48:17 -0400 |
commit | 16038ce2adf5f06f75230150f75d110a804414c1 (patch) | |
tree | ff624aaf429d99ed0ba91614fcccaf789e286b26 /src/com/gitblit/GitBlit.java | |
parent | 4a286829631bd6e69f670ff1ef3e1f22d570b940 (diff) | |
download | gitblit-16038ce2adf5f06f75230150f75d110a804414c1.tar.gz gitblit-16038ce2adf5f06f75230150f75d110a804414c1.zip |
Fixed collision error on rename repository or user
Diffstat (limited to 'src/com/gitblit/GitBlit.java')
-rw-r--r-- | src/com/gitblit/GitBlit.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index eaf6a957..6f537ec6 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -440,6 +440,14 @@ public class GitBlit implements ServletContextListener { */
public void updateUserModel(String username, UserModel user, boolean isCreate)
throws GitBlitException {
+ if (!username.equalsIgnoreCase(user.username)) {
+ if (userService.getUserModel(user.username) != null) {
+ throw new GitBlitException(
+ MessageFormat
+ .format("Failed to rename ''{0}'' because ''{1}'' already exists.",
+ username, user.username));
+ }
+ }
if (!userService.updateUserModel(username, user)) {
throw new GitBlitException(isCreate ? "Failed to add user!" : "Failed to update user!");
}
@@ -722,6 +730,16 @@ public class GitBlit implements ServletContextListener { } else {
// rename repository
if (!repositoryName.equalsIgnoreCase(repository.name)) {
+ if (!repository.name.toLowerCase().endsWith(
+ org.eclipse.jgit.lib.Constants.DOT_GIT_EXT)) {
+ repository.name += org.eclipse.jgit.lib.Constants.DOT_GIT_EXT;
+ }
+ if (new File(repositoriesFolder, repository.name).exists()) {
+ throw new GitBlitException(
+ MessageFormat
+ .format("Failed to rename ''{0}'' because ''{1}'' already exists.",
+ repositoryName, repository.name));
+ }
closeRepository(repositoryName);
File folder = new File(repositoriesFolder, repositoryName);
File destFolder = new File(repositoriesFolder, repository.name);
|