if (user == null) throw new InvalidInputException("You don't have the correct permissions - user (" + username + ") not found");
@VisibleForTesting ApplicationUser getCaller(final Map transientVars) throws InvalidInputException { final String userKey = getCallerKey(transientVars); final ApplicationUser user = ComponentAccessor.getUserManager().getUserByKey(userKey); // Check if user was found if (userKey != null && user == null) { throw new InvalidInputException("You don't have the correct permissions - user (" + userKey + ") not found"); } return user; }
private void validateIssueFieldsLength(final WorkflowProgressAware from, final MutableIssue issue) throws InvalidInputException { final IssueTextFieldCharacterLengthValidator.ValidationResult validationResult = textFieldCharacterLengthValidator.validateModifiedFields(issue); if (!validationResult.isValid()) { final I18nHelper i18n = getI18nBean(from.getRemoteUser()); HashMap<String, String> invalidFields = Maps.newHashMapWithExpectedSize(validationResult.getInvalidFieldIds().size()); for (final String fieldId: validationResult.getInvalidFieldIds()) { invalidFields.put(fieldId, i18n.getText("field.error.text.toolong", validationResult.getMaximumNumberOfCharacters())); } throw new InvalidInputException(invalidFields); } }
@SuppressWarnings ("SimplifiableIfStatement") @VisibleForTesting boolean hasUserPermissionForIssue(Issue issue, ProjectPermissionKey permissionKey, ApplicationUser user, PermissionManager permissionManager) throws InvalidInputException { //Check to see if we have an existing issue in the transient vars, if we do use that, otherwise use the project. if (issue.getGenericValue() != null) { return permissionManager.hasPermission(permissionKey, issue, user); } else if (issue.getProjectObject() != null) { return permissionManager.hasPermission(permissionKey, issue.getProjectObject(), user); } else { throw new InvalidInputException("Invalid project specified."); } } }
@VisibleForTesting void hasUserPermission(final Map args, final Map transientVars, final ApplicationUser user) throws InvalidInputException { ProjectPermissionKey key = resolvePermissionKey(args); PermissionManager permissionManager = getPermissionManager(); Option<ProjectPermission> permission = permissionManager.getProjectPermission(key); // Pass the check if the permission doesn't exist. if (!permission.isDefined()) { return; } Issue issue = (Issue) transientVars.get("issue"); // Check Issue permission if (!hasUserPermissionForIssue(issue, key, user, permissionManager)) { I18nHelper i18nHelper = getJiraAuthenticationContext().getI18nHelper(); String permissionName = i18nHelper.getText(permission.get().getNameI18nKey()); throw new InvalidInputException("User '" + user.getUsername() + "' doesn't have the '" + permissionName + "' permission"); } }