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