Skip to content

Commit

Permalink
Handle case where access is denied searching for buildTypeId.
Browse files Browse the repository at this point in the history
  • Loading branch information
netwolfuk committed Aug 29, 2019
1 parent 12e0bdc commit a0cc7f3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ public class WebHookSearchResult {
private List<Match> matches = new ArrayList<>();
@Setter
private WebHookConfigEnhanced webHookConfigEnhanced;
@Setter
private boolean filteredResult = false;

public void addMatch(Match match) {
this.matches.add(match);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import jetbrains.buildServer.serverSide.ProjectManager;
import jetbrains.buildServer.serverSide.SBuildType;
import jetbrains.buildServer.serverSide.SProject;
import jetbrains.buildServer.serverSide.auth.AccessDeniedException;
import jetbrains.buildServer.serverSide.settings.ProjectSettingsManager;
import webhook.teamcity.BuildState;
import webhook.teamcity.WebHookListener;
Expand Down Expand Up @@ -210,21 +211,25 @@ private void addMatchingWebHook(WebHookSearchFilter filter, List<WebHookSearchRe
*/
private void doBuildTypeIdSearch(WebHookSearchFilter filter, WebHookConfigEnhanced e, WebHookSearchResult result) {
if (filter.getBuildTypeExternalId() != null && !filter.getBuildTypeExternalId().isEmpty()) {
SBuildType myBuildType = myProjectManager.findBuildTypeByExternalId(filter.getBuildTypeExternalId());
if (myBuildType != null &&
(
(
myBuildType.getProjectExternalId().equalsIgnoreCase(e.getProjectExternalId())
&& e.getWebHookConfig().isEnabledForBuildType(myBuildType)
)
|| (
e.getWebHookConfig().isEnabledForSubProjects()
&& myProjectManager.findProjectByExternalId(e.getProjectExternalId()).getProjects().contains(myBuildType.getProject())
try {
SBuildType myBuildType = myProjectManager.findBuildTypeByExternalId(filter.getBuildTypeExternalId());
if (myBuildType != null &&
(
(
myBuildType.getProjectExternalId().equalsIgnoreCase(e.getProjectExternalId())
&& e.getWebHookConfig().isEnabledForBuildType(myBuildType)
)
|| (
e.getWebHookConfig().isEnabledForSubProjects()
&& myProjectManager.findProjectByExternalId(e.getProjectExternalId()).getProjects().contains(myBuildType.getProject())
)
)
)
)
{
result.addMatch(Match.BUILD_TYPE);
{
result.addMatch(Match.BUILD_TYPE);
}
} catch (AccessDeniedException ex) {
result.setFilteredResult(true);
}
}
}
Expand Down

0 comments on commit a0cc7f3

Please sign in to comment.