From 65edf0dc4d058c0e8273a86f6ef41ea5dc5546ba Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Fri, 25 Nov 2016 13:19:45 +0100 Subject: [PATCH] Only show the 'Edit Config' button if refs/meta/config is visible We already show the 'Edit Config' button on the project screen only for project owners, however it seems to be possible to setup access rights in such a way that project owners can't see the refs/meta/config branch. In this case the user can't see changes for the refs/meta/config branch and the behaviour of the 'Edit Config' button is confusing. It lets the user click on 'Edit Config' which creates a change for refs/meta/config but the change is not visible to the user due to missing read permissions for refs/meta/config. Fix this by showing the 'Edit config' button only for project owners that can see the refs/meta/config branch. Change-Id: Id52ec9a40443cae3b2609001c6317d54f0ff05b8 Signed-off-by: Edwin Kempin --- .../com/google/gerrit/client/access/ProjectAccessInfo.java | 1 + .../com/google/gerrit/client/admin/ProjectInfoScreen.java | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/access/ProjectAccessInfo.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/access/ProjectAccessInfo.java index 7cfb1fca6c..ae93a83e29 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/access/ProjectAccessInfo.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/access/ProjectAccessInfo.java @@ -19,6 +19,7 @@ import com.google.gwt.core.client.JavaScriptObject; public class ProjectAccessInfo extends JavaScriptObject { public final native boolean canAddRefs() /*-{ return this.can_add ? true : false; }-*/; public final native boolean isOwner() /*-{ return this.is_owner ? true : false; }-*/; + public final native boolean configVisible() /*-{ return this.config_visible ? true : false; }-*/; protected ProjectAccessInfo() { } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java index e1cfa909df..24c2da7b2b 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java @@ -72,6 +72,7 @@ import java.util.Map.Entry; public class ProjectInfoScreen extends ProjectScreen { private boolean isOwner; + private boolean configVisible; private LabeledWidgetsGrid grid; private Panel pluginOptionsPanel; @@ -154,6 +155,7 @@ public class ProjectInfoScreen extends ProjectScreen { @Override public void onSuccess(ProjectAccessInfo result) { isOwner = result.isOwner(); + configVisible = result.configVisible(); enableForm(); saveProject.setVisible(isOwner); } @@ -625,7 +627,7 @@ public class ProjectInfoScreen extends ProjectScreen { actionsPanel.add(createChangeAction()); } - if (isOwner) { + if (isOwner && configVisible) { actionsPanel.add(createEditConfigAction()); } }