@Override public IssueLinkResult getIssueLinks(ApplicationUser user, Issue issue) { return this.getIssueLinks(user, issue, true); }
private ErrorCollection validateIssuePermission(final ApplicationUser user, final Issue issue, final int permissionsId) { return validateIssuePermission(user, issue, permissionsId, "issuelinking.service.error.issue.no.permission"); }
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 AddIssueLinkValidationResult validateAddIssueLinks(ApplicationUser user, Issue issue, String linkName, Collection<String> linkKeys) { IssueLinkType linkType = matchToIssueLinkType(linkName); if (null == linkType) { ErrorCollection errors = new SimpleErrorCollection(); errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.invalid.link.name", linkName)); return new AddIssueLinkValidationResult(user, errors, null, null, null, null); } Direction direction = linkName.equals(linkType.getInward()) ? Direction.IN : Direction.OUT; return validateAddIssueLinks(user, issue, linkType, direction, linkKeys, true); }
@Override public AddIssueLinkValidationResult validateAddIssueLinks(ApplicationUser user, Issue issue, Long issueLinkTypeId, Direction direction, Collection<String> linkKeys, boolean excludeSystemLinks) { IssueLinkType linkType = issueLinkTypeManager.getIssueLinkType(issueLinkTypeId); if (null == linkType) { ErrorCollection errors = new SimpleErrorCollection(); errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.invalid.link.id", issueLinkTypeId)); return new AddIssueLinkValidationResult(user, errors, null, null, null, null); } return validateAddIssueLinks(user, issue, linkType, direction, linkKeys, excludeSystemLinks); }
@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); } }
@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); }