From 5ae529ea8a73edc8e2bb1e7f9576e51c9d870224 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 29 Nov 2013 11:05:51 -0500
Subject: [PATCH] Change IGitblit API to be more distinct from IUserService

---
 src/main/java/com/gitblit/wicket/pages/RepositoryPage.java     |    2 
 src/main/java/com/gitblit/wicket/pages/ChangePasswordPage.java |    2 
 src/main/java/com/gitblit/wicket/pages/EditUserPage.java       |    6 ++
 src/main/java/com/gitblit/service/FederationPullService.java   |    6 +-
 src/main/java/com/gitblit/manager/IGitblit.java                |   28 ++++++++++---
 src/main/java/com/gitblit/servlet/RpcServlet.java              |    8 ++--
 src/main/java/com/gitblit/wicket/pages/EditTeamPage.java       |    6 ++
 src/test/java/com/gitblit/tests/GitServletTest.java            |   10 ++--
 src/main/java/com/gitblit/GitBlit.java                         |   46 ++++++++++++++++------
 9 files changed, 78 insertions(+), 36 deletions(-)

diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index d736c57..d07ac9a 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -183,7 +183,7 @@
 				UserModel originOwner = userManager.getUserModel(owner);
 				if (originOwner != null) {
 					originOwner.setRepositoryPermission(cloneName, AccessPermission.CLONE);
-					updateUserModel(originOwner.username, originOwner, false);
+					reviseUser(originOwner.username, originOwner);
 				}
 			}
 		}
@@ -222,15 +222,25 @@
 	}
 
 	/**
+	 * Adds a TeamModel object.
+	 *
+	 * @param team
+	 */
+	@Override
+	public void addTeam(TeamModel team) throws GitBlitException {
+		if (!userManager.updateTeamModel(team)) {
+			throw new GitBlitException("Failed to add team!");
+		}
+	}
+
+	/**
 	 * Updates the TeamModel object for the specified name.
 	 *
 	 * @param teamname
 	 * @param team
-	 * @param isCreate
 	 */
 	@Override
-	public void updateTeamModel(String teamname, TeamModel team, boolean isCreate)
-			throws GitBlitException {
+	public void reviseTeam(String teamname, TeamModel team) throws GitBlitException {
 		if (!teamname.equalsIgnoreCase(team.name)) {
 			if (userManager.getTeamModel(team.name) != null) {
 				throw new GitBlitException(MessageFormat.format(
@@ -239,23 +249,33 @@
 			}
 		}
 		if (!userManager.updateTeamModel(teamname, team)) {
-			throw new GitBlitException(isCreate ? "Failed to add team!" : "Failed to update team!");
+			throw new GitBlitException("Failed to update team!");
 		}
 	}
 
 	/**
-	 * Adds/updates a complete user object keyed by username. This method allows
-	 * for renaming a user.
+	 * Adds a user object.
 	 *
-	 * @see IUserService.updateUserModel(String, UserModel)
-	 * @param username
 	 * @param user
-	 * @param isCreate
 	 * @throws GitBlitException
 	 */
 	@Override
-	public void updateUserModel(String username, UserModel user, boolean isCreate)
-			throws GitBlitException {
+	public void addUser(UserModel user) throws GitBlitException {
+		if (!userManager.updateUserModel(user)) {
+			throw new GitBlitException("Failed to add user!");
+		}
+	}
+
+	/**
+	 * Updates a user object keyed by username. This method allows
+	 * for renaming a user.
+	 *
+	 * @param username
+	 * @param user
+	 * @throws GitBlitException
+	 */
+	@Override
+	public void reviseUser(String username, UserModel user) throws GitBlitException {
 		if (!username.equalsIgnoreCase(user.username)) {
 			if (userManager.getUserModel(user.username) != null) {
 				throw new GitBlitException(MessageFormat.format(
@@ -280,7 +300,7 @@
 			}
 		}
 		if (!userManager.updateUserModel(username, user)) {
-			throw new GitBlitException(isCreate ? "Failed to add user!" : "Failed to update user!");
+			throw new GitBlitException("Failed to update user!");
 		}
 	}
 
diff --git a/src/main/java/com/gitblit/manager/IGitblit.java b/src/main/java/com/gitblit/manager/IGitblit.java
index c0167f0..aa09122 100644
--- a/src/main/java/com/gitblit/manager/IGitblit.java
+++ b/src/main/java/com/gitblit/manager/IGitblit.java
@@ -47,25 +47,39 @@
 	List<RepositoryUrl> getRepositoryUrls(HttpServletRequest request, UserModel user, RepositoryModel repository);
 
 	/**
-	 * Adds/updates a complete user object keyed by username. This method allows
-	 * for renaming a user.
+	 * Creates a complete user object.
 	 *
-	 * @see IUserService.updateUserModel(String, UserModel)
-	 * @param username
 	 * @param user
 	 * @param isCreate
 	 * @throws GitBlitException
 	 */
-	void updateUserModel(String username, UserModel user, boolean isCreate) throws GitBlitException;
+	void addUser(UserModel user) throws GitBlitException;
+
+	/**
+	 * Updates a complete user object keyed by username. This method allows
+	 * for renaming a user.
+	 *
+	 * @param username
+	 * @param user
+	 * @throws GitBlitException
+	 */
+	void reviseUser(String username, UserModel user) throws GitBlitException;
+
+	/**
+	 * Creates a TeamModel object.
+	 *
+	 * @param team
+	 * @param isCreate
+	 */
+	void addTeam(TeamModel team) throws GitBlitException;
 
 	/**
 	 * Updates the TeamModel object for the specified name.
 	 *
 	 * @param teamname
 	 * @param team
-	 * @param isCreate
 	 */
-	void updateTeamModel(String teamname, TeamModel team, boolean isCreate) throws GitBlitException;
+	void reviseTeam(String teamname, TeamModel team) throws GitBlitException;
 
 	/**
 	 * Creates a personal fork of the specified repository. The clone is view
diff --git a/src/main/java/com/gitblit/service/FederationPullService.java b/src/main/java/com/gitblit/service/FederationPullService.java
index c804f3f..e2a50f2 100644
--- a/src/main/java/com/gitblit/service/FederationPullService.java
+++ b/src/main/java/com/gitblit/service/FederationPullService.java
@@ -31,8 +31,8 @@
 import com.gitblit.Constants.AccessPermission;
 import com.gitblit.Constants.FederationPullStatus;
 import com.gitblit.Constants.FederationStrategy;
-import com.gitblit.GitBlitException.ForbiddenException;
 import com.gitblit.GitBlit;
+import com.gitblit.GitBlitException.ForbiddenException;
 import com.gitblit.IUserService;
 import com.gitblit.Keys;
 import com.gitblit.models.FederationModel;
@@ -346,7 +346,7 @@
 						UserModel localUser = gitblit.getUserModel(user.username);
 						if (localUser == null) {
 							// create new local user
-							gitblit.updateUserModel(user.username, user, true);
+							gitblit.addUser(user);
 						} else {
 							// update repository permissions of local user
 							if (user.permissions != null) {
@@ -363,7 +363,7 @@
 							}
 							localUser.password = user.password;
 							localUser.canAdmin = user.canAdmin;
-							gitblit.updateUserModel(localUser.username, localUser, false);
+							gitblit.reviseUser(localUser.username, localUser);
 						}
 
 						for (String teamname : gitblit.getAllTeamNames()) {
diff --git a/src/main/java/com/gitblit/servlet/RpcServlet.java b/src/main/java/com/gitblit/servlet/RpcServlet.java
index 481a8ba..856bd83 100644
--- a/src/main/java/com/gitblit/servlet/RpcServlet.java
+++ b/src/main/java/com/gitblit/servlet/RpcServlet.java
@@ -218,7 +218,7 @@
 			// create user
 			UserModel model = deserialize(request, response, UserModel.class);
 			try {
-				gitblit.updateUserModel(model.username, model, true);
+				gitblit.addUser(model);
 			} catch (GitBlitException e) {
 				response.setStatus(failureCode);
 			}
@@ -231,7 +231,7 @@
 				username = model.username;
 			}
 			try {
-				gitblit.updateUserModel(username, model, false);
+				gitblit.reviseUser(username, model);
 			} catch (GitBlitException e) {
 				response.setStatus(failureCode);
 			}
@@ -245,7 +245,7 @@
 			// create team
 			TeamModel model = deserialize(request, response, TeamModel.class);
 			try {
-				gitblit.updateTeamModel(model.name, model, true);
+				gitblit.addTeam(model);
 			} catch (GitBlitException e) {
 				response.setStatus(failureCode);
 			}
@@ -258,7 +258,7 @@
 				teamname = model.name;
 			}
 			try {
-				gitblit.updateTeamModel(teamname, model, false);
+				gitblit.reviseTeam(teamname, model);
 			} catch (GitBlitException e) {
 				response.setStatus(failureCode);
 			}
diff --git a/src/main/java/com/gitblit/wicket/pages/ChangePasswordPage.java b/src/main/java/com/gitblit/wicket/pages/ChangePasswordPage.java
index ec5fe16..4c8d3a1 100644
--- a/src/main/java/com/gitblit/wicket/pages/ChangePasswordPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/ChangePasswordPage.java
@@ -97,7 +97,7 @@
 
 				user.password = password;
 				try {
-					app().gitblit().updateUserModel(user.username, user, false);
+					app().gitblit().reviseUser(user.username, user);
 					if (app().settings().getBoolean(Keys.web.allowCookieAuthentication, false)) {
 						WebResponse response = (WebResponse) getRequestCycle().getResponse();
 						app().authentication().setCookie(response.getHttpServletResponse(), user);
diff --git a/src/main/java/com/gitblit/wicket/pages/EditTeamPage.java b/src/main/java/com/gitblit/wicket/pages/EditTeamPage.java
index 232dbe3..82b28fc 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditTeamPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditTeamPage.java
@@ -196,7 +196,11 @@
 				teamModel.postReceiveScripts.addAll(postReceiveScripts);
 
 				try {
-					app().gitblit().updateTeamModel(oldName, teamModel, isCreate);
+					if (isCreate) {
+						app().gitblit().addTeam(teamModel);
+					} else {
+						app().gitblit().reviseTeam(oldName, teamModel);
+					}
 				} catch (GitBlitException e) {
 					error(e.getMessage());
 					return;
diff --git a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
index 4e91b45..62a8ea5 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java
@@ -188,7 +188,11 @@
 				}
 
 				try {
-					app().gitblit().updateUserModel(oldName, userModel, isCreate);
+					if (isCreate) {
+						app().gitblit().addUser(userModel);
+					} else {
+						app().gitblit().reviseUser(oldName, userModel);
+					}
 				} catch (GitBlitException e) {
 					error(e.getMessage());
 					return;
diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
index dd6763d..a108f92 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -139,7 +139,7 @@
 				UserRepositoryPreferences prefs = user.getPreferences().getRepositoryPreferences(getRepositoryModel().name);
 				prefs.starred = star;
 				try {
-					app().gitblit().updateUserModel(user.username, user, false);
+					app().gitblit().reviseUser(user.username, user);
 				} catch (GitBlitException e) {
 					logger.error("Failed to update user " + user.username, e);
 					error(getString("gb.failedToUpdateUser"), false);
diff --git a/src/test/java/com/gitblit/tests/GitServletTest.java b/src/test/java/com/gitblit/tests/GitServletTest.java
index ad61a67..705684a 100644
--- a/src/test/java/com/gitblit/tests/GitServletTest.java
+++ b/src/test/java/com/gitblit/tests/GitServletTest.java
@@ -177,7 +177,7 @@
 		model.authorizationControl = AuthorizationControl.NAMED;
 		UserModel user = new UserModel("james");
 		user.password = "james";
-		gitblit().updateUserModel(user.username, user, true);
+		gitblit().addUser(user);
 		repositories().updateRepositoryModel(model.name, model, false);
 
 		FileUtils.delete(ticgit2Folder, FileUtils.RECURSIVE);
@@ -419,7 +419,7 @@
 		// grant user push permission
 		user.setRepositoryPermission(model.name, AccessPermission.PUSH);
 
-		gitblit().updateUserModel(user.username, user, true);
+		gitblit().addUser(user);
 		repositories().updateRepositoryModel(model.name, model, false);
 
 		// clone temp bare repo to working copy
@@ -504,7 +504,7 @@
 		// grant user push permission
 		user.setRepositoryPermission(model.name, AccessPermission.PUSH);
 
-		gitblit().updateUserModel(user.username, user, true);
+		gitblit().addUser(user);
 		repositories().updateRepositoryModel(model.name, model, false);
 
 		// clone temp bare repo to working copy
@@ -657,7 +657,7 @@
 		// grant user specified
 		user.setRepositoryPermission(model.name, permission);
 
-		gitblit().updateUserModel(user.username, user, true);
+		gitblit().addUser(user);
 		repositories().updateRepositoryModel(model.name, model, false);
 
 		// clone temp bare repo to working copy
@@ -827,7 +827,7 @@
 		user.canCreate = canCreate;
 		user.canAdmin = canAdmin;
 
-		gitblit().updateUserModel(user.username, user, true);
+		gitblit().addUser(user);
 
 		CredentialsProvider cp = new UsernamePasswordCredentialsProvider(user.username, user.password);
 

--
Gitblit v1.9.1