From aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3 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] Extract SessionManager from GitBlit singleton

---
 src/main/java/com/gitblit/WindowsUserService.java |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/gitblit/WindowsUserService.java b/src/main/java/com/gitblit/WindowsUserService.java
index 4830297..99077c6 100644
--- a/src/main/java/com/gitblit/WindowsUserService.java
+++ b/src/main/java/com/gitblit/WindowsUserService.java
@@ -29,6 +29,7 @@
 import waffle.windows.auth.impl.WindowsAuthProviderImpl;
 
 import com.gitblit.Constants.AccountType;
+import com.gitblit.manager.IRuntimeManager;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
@@ -36,7 +37,7 @@
 
 /**
  * Implementation of a Windows user service.
- * 
+ *
  * @author James Moger
  */
 public class WindowsUserService extends GitblitUserService {
@@ -44,7 +45,7 @@
     private final Logger logger = LoggerFactory.getLogger(WindowsUserService.class);
 
     private IStoredSettings settings;
-    
+
     private IWindowsAuthProvider waffle;
 
     public WindowsUserService() {
@@ -52,15 +53,15 @@
     }
 
     @Override
-    public void setup(IStoredSettings settings) {
-        this.settings = settings;
+    public void setup(IRuntimeManager runtimeManager) {
+        this.settings = runtimeManager.getSettings();
 
         String file = settings.getString(Keys.realm.windows.backingUserService, "${baseFolder}/users.conf");
-        File realmFile = GitBlit.getFileOrFolder(file);
+        File realmFile = runtimeManager.getFileOrFolder(file);
 
         serviceImpl = createUserService(realmFile);
         logger.info("Windows User Service backed by " + serviceImpl.toString());
-        
+
         waffle = new WindowsAuthProviderImpl();
         IWindowsComputer computer = waffle.getCurrentComputer();
         logger.info("      name = " + computer.getComputerName());
@@ -68,7 +69,7 @@
         logger.info("  memberOf = " + computer.getMemberOf());
         //logger.info("  groups     = " + Arrays.asList(computer.getGroups()));
     }
-    
+
     protected String describeJoinStatus(String value) {
     	if ("NetSetupUnknownStatus".equals(value)) {
     		return "unknown";
@@ -101,9 +102,9 @@
     public boolean supportsTeamMembershipChanges() {
         return true;
     }
-    
+
 	 @Override
-	protected AccountType getAccountType() {
+	public AccountType getAccountType() {
 		return AccountType.WINDOWS;
 	}
 
@@ -150,7 +151,7 @@
 			identity.dispose();
 			return null;
 		}
-		
+
         UserModel user = getUserModel(username);
         if (user == null)	// create user object for new authenticated user
         	user = new UserModel(username.toLowerCase());
@@ -174,12 +175,12 @@
        	for (IWindowsAccount group : identity.getGroups()) {
        		groupNames.add(group.getFqn());
         }
-        
+
         if (groupNames.contains("BUILTIN\\Administrators")) {
         	// local administrator
         	user.canAdmin = true;
         }
-        
+
         // TODO consider mapping Windows groups to teams
 
         // push the changes to the backing user service
@@ -188,7 +189,7 @@
 
         // cleanup resources
         identity.dispose();
-        
+
         return user;
     }
 }

--
Gitblit v1.9.1