private ErrorCollection validateIssuePermission(final ApplicationUser user, final Issue issue, final int permissionsId) { return validateIssuePermission(user, issue, permissionsId, "issuelinking.service.error.issue.no.permission"); }
@Override public IssueLinkResult getIssueLinks(ApplicationUser user, Issue issue, boolean excludeSystemLinks) { ErrorCollection errorCollection = validateIssuePermission(user, issue, Permissions.BROWSE); if (!errorCollection.hasAnyErrors()) { final LinkCollection linkCollection = issueLinkManager.getLinkCollection(issue, user, excludeSystemLinks); return new IssueLinkResult(errorCollection, linkCollection); } else { return new IssueLinkResult(errorCollection, null); } }
private AddIssueLinkValidationResult validateAddIssueLinks(ApplicationUser user, Issue issue, IssueLinkType linkType, Direction direction, Collection<String> linkKeys, boolean excludeSystemLinks) { Assertions.notNull("issue", issue); Assertions.notNull("linkKeys", linkKeys); ErrorCollection errorCollection = validateIssuePermission(user, issue, Permissions.LINK_ISSUE); if (!errorCollection.hasAnyErrors()) { validateLinkInput(user, errorCollection, issue, linkType, linkKeys, excludeSystemLinks); } return new AddIssueLinkValidationResult(user, errorCollection, issue, linkType, direction, linkKeys); }
@Override public DeleteIssueLinkValidationResult validateDelete(ApplicationUser user, Issue issue, IssueLink issueLink) { final ErrorCollection errors = validateIssuePermission(user, issue, Permissions.LINK_ISSUE, "admin.errors.issues.no.permission.to.delete.links"); validateLinkingEnabled(user, errors); if (issueLink == null) { errors.addErrorMessage(beanFactory.getInstance(user).getText("admin.errors.issues.cannot.find.link"), Reason.NOT_FOUND); } return new DeleteIssueLinkValidationResult(errors, errors.hasAnyErrors() ? null : issueLink, user); }
@Override public SingleIssueLinkResult getIssueLink(Long issueLinkId, ApplicationUser user) { Assertions.notNull("issueLinkId", issueLinkId); IssueLink issueLink = issueLinkManager.getIssueLink(issueLinkId); if (issueLink == null) { SimpleErrorCollection simpleErrorCollection = new SimpleErrorCollection(); simpleErrorCollection.addErrorMessage(beanFactory.getInstance(user).getText("rest.issue.link.not.found", issueLinkId.toString())); return new SingleIssueLinkResult(simpleErrorCollection, null); } MutableIssue sourceIssue = issueManager.getIssueObject(issueLink.getSourceId()); ErrorCollection sourceIssueErrors = validateIssuePermission(user, sourceIssue, Permissions.BROWSE); MutableIssue destinationIssue = issueManager.getIssueObject(issueLink.getDestinationId()); ErrorCollection destinationIssueErrors = validateIssuePermission(user, destinationIssue, Permissions.BROWSE); if (sourceIssueErrors.hasAnyErrors() || destinationIssueErrors.hasAnyErrors()) { sourceIssueErrors.getErrors().putAll(destinationIssueErrors.getErrors()); sourceIssueErrors.getErrorMessages().addAll(destinationIssueErrors.getErrorMessages()); return new SingleIssueLinkResult(sourceIssueErrors, null); } return new SingleIssueLinkResult(new SimpleErrorCollection(), issueLink); }