From c721a5d012ac3b841e1203ccd7fb60981a345c83 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 30 Oct 2012 17:28:28 -0400
Subject: [PATCH] Replaced fork icon

---
 src/com/gitblit/client/UsersPanel.java |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/src/com/gitblit/client/UsersPanel.java b/src/com/gitblit/client/UsersPanel.java
index 0dfa043..cd571b2 100644
--- a/src/com/gitblit/client/UsersPanel.java
+++ b/src/com/gitblit/client/UsersPanel.java
@@ -40,7 +40,9 @@
 import javax.swing.event.ListSelectionListener;
 import javax.swing.table.TableRowSorter;
 
+import com.gitblit.Constants.PermissionType;
 import com.gitblit.Constants.RpcRequest;
+import com.gitblit.models.RegistrantAccessPermission;
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.StringUtils;
@@ -309,7 +311,22 @@
 				gitblit.getSettings());
 		dialog.setLocationRelativeTo(UsersPanel.this);
 		dialog.setUsers(gitblit.getUsers());
-		dialog.setRepositories(gitblit.getRepositories(), new ArrayList<String>(user.repositories));
+		
+		List<RegistrantAccessPermission> permissions = user.getRepositoryPermissions();
+		for (RegistrantAccessPermission permission : permissions) {
+			if (permission.isEditable && PermissionType.EXPLICIT.equals(permission.permissionType)) {
+				// Ensure this is NOT an owner permission - which is non-editable
+				// We don't know this from within the usermodel, ownership is a
+				// property of a repository.
+				boolean isOwner = gitblit.getRepository(permission.registrant).isOwner(user.username);
+				if (isOwner) {
+					permission.permissionType = PermissionType.OWNER;
+					permission.isEditable = false;
+				}
+			}
+		}
+		
+		dialog.setRepositories(gitblit.getRepositories(), user.getRepositoryPermissions());
 		dialog.setTeams(gitblit.getTeams(), user.teams == null ? null : new ArrayList<TeamModel>(
 				user.teams));
 		dialog.setVisible(true);

--
Gitblit v1.9.1