summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/GitBlit.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-10-22 09:48:17 -0400
committerJames Moger <james.moger@gitblit.com>2011-10-22 09:48:17 -0400
commit16038ce2adf5f06f75230150f75d110a804414c1 (patch)
treeff624aaf429d99ed0ba91614fcccaf789e286b26 /src/com/gitblit/GitBlit.java
parent4a286829631bd6e69f670ff1ef3e1f22d570b940 (diff)
downloadgitblit-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.java18
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);