From 557a1fa25a0a1d60bdb71ea3ad0e4e9a9cd9cc61 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 17 Sep 2013 17:39:10 -0400
Subject: [PATCH] Ignore the contents of a default .git/description file

---
 src/main/java/com/gitblit/models/UserModel.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/models/UserModel.java b/src/main/java/com/gitblit/models/UserModel.java
index e4c659c..d785ae9 100644
--- a/src/main/java/com/gitblit/models/UserModel.java
+++ b/src/main/java/com/gitblit/models/UserModel.java
@@ -35,6 +35,7 @@
 import com.gitblit.Constants.RegistrantType;
 import com.gitblit.Constants.Unused;
 import com.gitblit.utils.ArrayUtils;
+import com.gitblit.utils.ModelUtils;
 import com.gitblit.utils.StringUtils;
 
 /**
@@ -75,17 +76,21 @@
 	// non-persisted fields
 	public boolean isAuthenticated;
 	public AccountType accountType;
+
+	public UserPreferences userPreferences;
 	
 	public UserModel(String username) {
 		this.username = username;
 		this.isAuthenticated = true;
 		this.accountType = AccountType.LOCAL;
+		this.userPreferences = new UserPreferences(this.username);
 	}
 
 	private UserModel() {
 		this.username = "$anonymous";
 		this.isAuthenticated = false;
 		this.accountType = AccountType.LOCAL;
+		this.userPreferences = new UserPreferences(this.username);
 	}
 	
 	public boolean isLocalAccount() {
@@ -269,7 +274,13 @@
 	}
 		
 	public void setRepositoryPermission(String repository, AccessPermission permission) {
-		permissions.put(repository.toLowerCase(), permission);
+		if (permission == null) {
+			// remove the permission
+			permissions.remove(repository.toLowerCase());
+		} else {
+			// set the new permission
+			permissions.put(repository.toLowerCase(), permission);
+		}
 	}
 
 	public RegistrantAccessPermission getRepositoryPermission(RepositoryModel repository) {
@@ -557,7 +568,7 @@
 		}
 		if (canCreate) {
 			String projectPath = StringUtils.getFirstPathElement(repository);
-			if (!StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username)) {
+			if (!StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase(getPersonalPath())) {
 				// personal repository
 				return true;
 			}
@@ -599,7 +610,11 @@
 	}
 	
 	public String getPersonalPath() {
-		return "~" + username;
+		return ModelUtils.getPersonalPath(username);
+	}
+	
+	public UserPreferences getPreferences() {
+		return userPreferences;
 	}
 	
 	@Override
@@ -661,6 +676,6 @@
 	
 	public boolean isMyPersonalRepository(String repository) {
 		String projectPath = StringUtils.getFirstPathElement(repository);
-		return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
+		return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase(getPersonalPath());
 	}
 }

--
Gitblit v1.9.1