From 06ae63123c94038b90153f4847de2c57c0193db8 Mon Sep 17 00:00:00 2001
From: Rafael Cavazin <rafaelcavazin@gmail.com>
Date: Sun, 27 Jan 2013 09:46:50 -0500
Subject: [PATCH] updating current development

---
 src/com/gitblit/LdapUserService.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/LdapUserService.java b/src/com/gitblit/LdapUserService.java
index 9ce18f6..595c658 100644
--- a/src/com/gitblit/LdapUserService.java
+++ b/src/com/gitblit/LdapUserService.java
@@ -25,6 +25,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.gitblit.Constants.AccountType;
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.ArrayUtils;
@@ -50,9 +51,9 @@
 public class LdapUserService extends GitblitUserService {
 
 	public static final Logger logger = LoggerFactory.getLogger(LdapUserService.class);
-	
-	private IStoredSettings settings;
 
+	private IStoredSettings settings;
+	
 	public LdapUserService() {
 		super();
 	}
@@ -60,7 +61,7 @@
 	@Override
 	public void setup(IStoredSettings settings) {
 		this.settings = settings;
-		String file = settings.getString(Keys.realm.ldap.backingUserService, "users.conf");
+		String file = settings.getString(Keys.realm.ldap.backingUserService, "${baseFolder}/users.conf");
 		File realmFile = GitBlit.getFileOrFolder(file);
 
 		serviceImpl = createUserService(realmFile);
@@ -155,9 +156,19 @@
 	public boolean supportsTeamMembershipChanges() {
 		return !settings.getBoolean(Keys.realm.ldap.maintainTeams, false);
 	}
+	
+	@Override
+	protected AccountType getAccountType() {
+		 return AccountType.LDAP;
+	}
 
 	@Override
 	public UserModel authenticate(String username, char[] password) {
+		if (isLocalAccount(username)) {
+			// local account, bypass LDAP authentication
+			return super.authenticate(username, password);
+		}
+		
 		String simpleUsername = getSimpleUsername(username);
 		
 		LDAPConnection ldapConnection = getLdapConnection();
@@ -239,7 +250,8 @@
 		setAdminAttribute(user);
 		
 		// Don't want visibility into the real password, make up a dummy
-		user.password = "StoredInLDAP";
+		user.password = ExternalAccount;
+		user.accountType = getAccountType();
 		
 		// Get full name Attribute
 		String displayName = settings.getString(Keys.realm.ldap.displayName, "");		

--
Gitblit v1.9.1