From eecaad8b8e2c447429c31a01d49260ddd6b4ee03 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 16 Apr 2016 17:35:32 -0400
Subject: [PATCH] Proof of concept #1026

---
 src/main/java/com/gitblit/service/FederationPullService.java |   17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/gitblit/service/FederationPullService.java b/src/main/java/com/gitblit/service/FederationPullService.java
index 91fe015..629cbf9 100644
--- a/src/main/java/com/gitblit/service/FederationPullService.java
+++ b/src/main/java/com/gitblit/service/FederationPullService.java
@@ -32,9 +32,9 @@
 import com.gitblit.Constants.FederationPullStatus;
 import com.gitblit.Constants.FederationStrategy;
 import com.gitblit.GitBlitException.ForbiddenException;
-import com.gitblit.Gitblit;
 import com.gitblit.IUserService;
 import com.gitblit.Keys;
+import com.gitblit.manager.IGitblit;
 import com.gitblit.models.FederationModel;
 import com.gitblit.models.RefModel;
 import com.gitblit.models.RepositoryModel;
@@ -49,9 +49,9 @@
 
 public abstract class FederationPullService implements Runnable {
 
-	Logger logger = LoggerFactory.getLogger(getClass());
+	final Logger logger = LoggerFactory.getLogger(getClass());
 
-	Gitblit gitblit;
+	final IGitblit gitblit;
 
 	private final List<FederationModel> registrations;
 
@@ -62,8 +62,8 @@
 	 * @param provider
 	 * @param registration
 	 */
-	public FederationPullService(FederationModel registration) {
-		this(Arrays.asList(registration));
+	public FederationPullService(IGitblit gitblit, FederationModel registration) {
+		this(gitblit, Arrays.asList(registration));
 	}
 
 	/**
@@ -77,7 +77,8 @@
 	 *            if true, registrations are rescheduled in perpetuity. if
 	 *            false, the federation pull operation is executed once.
 	 */
-	public FederationPullService(List<FederationModel> registrations) {
+	public FederationPullService(IGitblit gitblit, List<FederationModel> registrations) {
+		this.gitblit = gitblit;
 		this.registrations = registrations;
 	}
 
@@ -346,7 +347,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 +364,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()) {

--
Gitblit v1.9.1