From 644bdd5a59a5ed5fbf93a0765f92608b0530c16a Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 31 Oct 2012 23:16:24 -0400 Subject: [PATCH] Improve transparency of permissions by indicating permission source --- src/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java | 31 +++++++++++++++++++++++++++---- 1 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java b/src/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java index 805db9d..d6bd565 100644 --- a/src/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java +++ b/src/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java @@ -15,6 +15,7 @@ */ package com.gitblit.wicket.panels; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; @@ -109,7 +110,7 @@ } Fragment userFragment = new Fragment("registrant", "userRegistrant", RegistrantPermissionsPanel.this); - userFragment.add(new GravatarImage("userAvatar", ident, 16, false)); + userFragment.add(new GravatarImage("userAvatar", ident, 20, false)); userFragment.add(new Label("userName", entry.registrant)); item.add(userFragment); } else { @@ -119,14 +120,30 @@ item.add(teamFragment); } switch (entry.permissionType) { + case ADMINISTRATOR: + Label administrator = new Label("pType", entry.source == null ? getString("gb.administrator") : entry.source); + WicketUtils.setHtmlTooltip(administrator, getString("gb.administratorPermission")); + WicketUtils.setCssClass(administrator, "label label-inverse"); + item.add(administrator); + break; case OWNER: - Label owner = new Label("pType", "owner"); + Label owner = new Label("pType", getString("gb.owner")); WicketUtils.setHtmlTooltip(owner, getString("gb.ownerPermission")); + WicketUtils.setCssClass(owner, "label label-info"); item.add(owner); + break; + case TEAM: + Label team = new Label("pType", entry.source == null ? getString("gb.team") : entry.source); + WicketUtils.setHtmlTooltip(team, MessageFormat.format(getString("gb.teamPermission"), entry.source)); + WicketUtils.setCssClass(team, "label label-success"); + item.add(team); break; case REGEX: Label regex = new Label("pType", "regex"); - WicketUtils.setHtmlTooltip(regex, getString("gb.regexPermission")); + if (!StringUtils.isEmpty(entry.source)) { + WicketUtils.setHtmlTooltip(regex, MessageFormat.format(getString("gb.regexPermission"), entry.source)); + } + WicketUtils.setCssClass(regex, "label"); item.add(regex); break; default: @@ -165,9 +182,15 @@ final List<String> registrants = new ArrayList<String>(allRegistrants); for (RegistrantAccessPermission rp : permissions) { if (rp.isEditable) { - // only remove editable duplicates + // remove editable duplicates // this allows for specifying an explicit permission registrants.remove(rp.registrant); + } else if (rp.isAdmin()) { + // administrators can not have their permission changed + registrants.remove(rp.registrant); + } else if (rp.isOwner()) { + // owners can not have their permission changed + registrants.remove(rp.registrant); } } -- Gitblit v1.9.1