From 6c5511020457c39961d069071ac60f7140ec724f Mon Sep 17 00:00:00 2001
From: Lukasz Jader <ljaderdev@gmail.com>
Date: Wed, 19 Sep 2012 16:24:10 -0400
Subject: [PATCH] Update polish translation of EmptyRepositoryPage

---
 src/com/gitblit/models/UserModel.java |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index dadc44e..8349bab 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -20,6 +20,7 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import com.gitblit.Constants.AuthorizationControl;
 import com.gitblit.utils.StringUtils;
 
 /**
@@ -37,12 +38,20 @@
 	// field names are reflectively mapped in EditUser page
 	public String username;
 	public String password;
+	public String cookie;
+	public String displayName;
+	public String emailAddress;
 	public boolean canAdmin;
 	public boolean excludeFromFederation;
 	public final Set<String> repositories = new HashSet<String>();
+	public final Set<TeamModel> teams = new HashSet<TeamModel>();
 
+	// non-persisted fields
+	public boolean isAuthenticated;
+	
 	public UserModel(String username) {
 		this.username = username;
+		this.isAuthenticated = true;
 	}
 
 	/**
@@ -54,23 +63,71 @@
 	 */
 	@Deprecated
 	public boolean canAccessRepository(String repositoryName) {
-		return canAdmin || repositories.contains(repositoryName.toLowerCase());
+		return canAdmin || repositories.contains(repositoryName.toLowerCase())
+				|| hasTeamAccess(repositoryName);
 	}
 
 	public boolean canAccessRepository(RepositoryModel repository) {
 		boolean isOwner = !StringUtils.isEmpty(repository.owner)
 				&& repository.owner.equals(username);
-		return canAdmin || isOwner || repositories.contains(repository.name.toLowerCase());
+		boolean allowAuthenticated = isAuthenticated && AuthorizationControl.AUTHENTICATED.equals(repository.authorizationControl);
+		return canAdmin || isOwner || repositories.contains(repository.name.toLowerCase())
+				|| hasTeamAccess(repository.name) || allowAuthenticated;
+	}
+
+	public boolean hasTeamAccess(String repositoryName) {
+		for (TeamModel team : teams) {
+			if (team.hasRepository(repositoryName)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean hasRepository(String name) {
+		return repositories.contains(name.toLowerCase());
 	}
 
 	public void addRepository(String name) {
 		repositories.add(name.toLowerCase());
 	}
 
+	public void removeRepository(String name) {
+		repositories.remove(name.toLowerCase());
+	}
+
+	public boolean isTeamMember(String teamname) {
+		for (TeamModel team : teams) {
+			if (team.name.equalsIgnoreCase(teamname)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public TeamModel getTeam(String teamname) {
+		if (teams == null) {
+			return null;
+		}
+		for (TeamModel team : teams) {
+			if (team.name.equalsIgnoreCase(teamname)) {
+				return team;
+			}
+		}
+		return null;
+	}
+
 	@Override
 	public String getName() {
 		return username;
 	}
+	
+	public String getDisplayName() {
+		if (StringUtils.isEmpty(displayName)) {
+			return username;
+		}
+		return displayName;
+	}
 
 	@Override
 	public String toString() {

--
Gitblit v1.9.1