From 9ba9be513a347ea9893c51f2db6b13f6c7cb08dd Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 31 Oct 2012 16:30:05 -0400 Subject: [PATCH] Added frm to default pretty print extensions (issue 156) --- src/com/gitblit/client/UsersPanel.java | 27 ++++++++++++++++++++++++++- 1 files changed, 26 insertions(+), 1 deletions(-) diff --git a/src/com/gitblit/client/UsersPanel.java b/src/com/gitblit/client/UsersPanel.java index 0dfa043..2c1481a 100644 --- a/src/com/gitblit/client/UsersPanel.java +++ b/src/com/gitblit/client/UsersPanel.java @@ -25,6 +25,7 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; @@ -40,7 +41,10 @@ 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.RepositoryModel; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; import com.gitblit.utils.StringUtils; @@ -309,7 +313,28 @@ 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. + RepositoryModel rm = gitblit.getRepository(permission.registrant); + if (rm == null) { + System.out.println(MessageFormat.format("{0}: failed to find registrant repository {1}", + getClass().getSimpleName(), permission.registrant)); + continue; + } + boolean isOwner = rm.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