From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java |   53 +++++++++++++++++++++++++++++------------------------
 1 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java
index 4156cd1..447e178 100644
--- a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java
@@ -43,7 +43,6 @@
 import com.gitblit.Constants.AccessPermission;
 import com.gitblit.Constants.PermissionType;
 import com.gitblit.Constants.RegistrantType;
-import com.gitblit.GitBlit;
 import com.gitblit.models.RegistrantAccessPermission;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.DeepCopier;
@@ -52,17 +51,17 @@
 
 /**
  * Allows user to manipulate registrant access permissions.
- * 
+ *
  * @author James Moger
  *
  */
 public class RegistrantPermissionsPanel extends BasePanel {
 
 	private static final long serialVersionUID = 1L;
-	
+
 	public enum Show {
 		specified, mutable, effective;
-		
+
 		public boolean show(RegistrantAccessPermission ap) {
 			switch (this) {
 			case specified:
@@ -76,9 +75,9 @@
 			}
 		}
 	}
-	
+
 	private Show activeState = Show.mutable;
-	
+
 	public RegistrantPermissionsPanel(String wicketId, RegistrantType registrantType, List<String> allRegistrants, final List<RegistrantAccessPermission> permissions, final Map<AccessPermission, String> translations) {
 		super(wicketId);
 		setOutputMarkupId(true);
@@ -97,7 +96,7 @@
 		 */
 		RefreshingView<RegistrantAccessPermission> dataView = new RefreshingView<RegistrantAccessPermission>("permissionRow") {
 			private static final long serialVersionUID = 1L;
-		
+
 			@Override
             protected Iterator<IModel<RegistrantAccessPermission>> getItemModels() {
                 // the iterator returns RepositoryPermission objects, but we need it to
@@ -116,7 +115,8 @@
                 // 'even' for decoration
                 return new OddEvenItem<RegistrantAccessPermission>(id, index, model);
             }
-            
+
+			@Override
 			public void populateItem(final Item<RegistrantAccessPermission> item) {
 				final RegistrantAccessPermission entry = item.getModelObject();
 				if (RegistrantType.REPOSITORY.equals(entry.registrantType)) {
@@ -135,19 +135,19 @@
 						Label label = new Label("registrant", entry.registrant);
 						WicketUtils.setCssStyle(label, "font-weight: bold;");
 						item.add(label);
-					}					
+					}
 				} else if (RegistrantType.USER.equals(entry.registrantType)) {
 					// user
 					PersonIdent ident = new PersonIdent(entry.registrant, "");
-					UserModel user = GitBlit.self().getUserModel(entry.registrant);
+					UserModel user = app().users().getUserModel(entry.registrant);
 					if (user != null) {
 						ident = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
 					}
 
 					Fragment userFragment = new Fragment("registrant", "userRegistrant", RegistrantPermissionsPanel.this);
-					userFragment.add(new GravatarImage("userAvatar", ident, 20, false));
-					userFragment.add(new Label("userName", entry.registrant));					
-					item.add(userFragment);					
+					userFragment.add(new AvatarImage("userAvatar", ident, 20));
+					userFragment.add(new Label("userName", entry.registrant));
+					item.add(userFragment);
 				} else {
 					// team
 					Fragment teamFragment = new Fragment("registrant", "teamRegistrant", RegistrantPermissionsPanel.this);
@@ -209,9 +209,10 @@
 				permissionChoice.setOutputMarkupId(true);
 				if (entry.mutable) {
 					permissionChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") {
-		           
+
 						private static final long serialVersionUID = 1L;
 
+						@Override
 						protected void onUpdate(AjaxRequestTarget target) {
 							target.addComponent(permissionChoice);
 						}
@@ -259,35 +260,39 @@
 				if (rp.permission == null) {
 					return;
 				}
+				if (rp.registrant == null) {
+					return;
+				}
 				RegistrantAccessPermission copy = DeepCopier.copy(rp);
 				if (StringUtils.findInvalidCharacter(copy.registrant) != null) {
 					copy.permissionType = PermissionType.REGEX;
 					copy.source = copy.registrant;
 				}
 				permissions.add(copy);
-				
+
 				// resort permissions after insert to convey idea of eval order
 				Collections.sort(permissions);
-				
+
 				// remove registrant from available choices
 				registrants.remove(rp.registrant);
-				
+
 				// force the panel to refresh
 				target.addComponent(RegistrantPermissionsPanel.this);
 			}
 		};
 		addPermissionForm.add(button);
-		
+
 		// only show add permission form if we have a registrant choice
 		add(addPermissionForm.setVisible(registrants.size() > 0));
 	}
-	
+
+	@Override
 	protected boolean getStatelessHint()
 	{
 		return false;
 	}
 
-	
+
 	private class AccessPermissionRenderer implements IChoiceRenderer<AccessPermission> {
 
 		private static final long serialVersionUID = 1L;
@@ -308,18 +313,18 @@
 			return Integer.toString(index);
 		}
 	}
-	
+
 	private class ShowStateButton extends AjaxButton {
 		private static final long serialVersionUID = 1L;
 
 		Show buttonState;
-		
+
 		public ShowStateButton(String wicketId, Show state) {
 			super(wicketId);
 			this.buttonState = state;
 			setOutputMarkupId(true);
 		}
-		
+
 		@Override
 		protected void onBeforeRender()
 		{
@@ -330,7 +335,7 @@
 			WicketUtils.setCssClass(this, cssClass);
 			super.onBeforeRender();
 		}
-		
+
 		@Override
 		protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
 			RegistrantPermissionsPanel.this.activeState = buttonState;

--
Gitblit v1.9.1