diff --git a/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/GerritReviewsTabPanel.java b/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/GerritReviewsTabPanel.java index 6bca796..ced4f14 100644 --- a/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/GerritReviewsTabPanel.java +++ b/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/GerritReviewsTabPanel.java @@ -38,6 +38,8 @@ import java.util.Iterator; import java.util.List; +import static org.apache.commons.collections.CollectionUtils.isEmpty; + /** * An {@link IssueTabPanel2 issue tab panel} for displaying all Gerrit code reviews related to this * issue. @@ -99,6 +101,10 @@ public ShowPanelReply showPanel(ShowPanelRequest arg0) { isShowing = false; } + if (configuration.getUseGerritProjectWhitelist() && !isGerritProject(arg0.issue())) { + isShowing = false; + } + return ShowPanelReply.create(isShowing); } @@ -177,4 +183,12 @@ private void setUsersForChangeApprovals(GerritChange change) { } } } + + private boolean isGerritProject(final Issue issue) { + if (issue.getProjectId() == null) { + return false; + } + return !isEmpty(configuration.getIdsOfKnownGerritProjects()) && + configuration.getIdsOfKnownGerritProjects().contains(issue.getProjectId().toString()); + } } diff --git a/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/SubtaskReviewsTabPanel.java b/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/SubtaskReviewsTabPanel.java index 0ec6f59..6a19cec 100644 --- a/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/SubtaskReviewsTabPanel.java +++ b/src/main/java/com/meetme/plugins/jira/gerrit/tabpanel/SubtaskReviewsTabPanel.java @@ -25,6 +25,8 @@ import java.util.Collection; import java.util.List; +import static org.apache.commons.collections.CollectionUtils.isEmpty; + public class SubtaskReviewsTabPanel extends AbstractIssueTabPanel2 implements IssueTabPanel2 { private final GerritConfiguration configuration; private final IssueReviewsManager reviewsManager; @@ -61,6 +63,10 @@ public ShowPanelReply showPanel(ShowPanelRequest request) { if (isConfigurationReady()) { Collection subtasks = request.issue().getSubTaskObjects(); show = subtasks != null && subtasks.size() > 0; + + if (configuration.getUseGerritProjectWhitelist() && !isGerritProject(request.issue())) { + show = false; + } } return ShowPanelReply.create(show); @@ -76,4 +82,12 @@ private boolean isConfigurationReady() { return configuration != null && configuration.getSshHostname() != null && configuration.getSshUsername() != null && configuration.getSshPrivateKey() != null && configuration.getSshPrivateKey().exists(); } + + private boolean isGerritProject(final Issue issue) { + if (issue.getProjectId() == null) { + return false; + } + return !isEmpty(configuration.getIdsOfKnownGerritProjects()) && + configuration.getIdsOfKnownGerritProjects().contains(issue.getProjectId().toString()); + } }