private void validateCreateComment(
      ErrorCollection errorCollection,
      Issue issue,
      Map<String, Object> commentParams,
      String body,
      Visibility visibility,
      ApplicationUser user) {
    // Validate user has the correct permissions IF we are actually adding a comment
    if (StringUtils.isNotBlank(body)) {
      commentService.hasPermissionToCreate(user, issue, errorCollection);
    }
    boolean allowEmptyComments = true;
    if (commentParams.get(CREATE_COMMENT) != null) {
      allowEmptyComments = false;
    }

    commentService.isValidCommentBody(body, errorCollection, allowEmptyComments);

    // Validate the group and role level settings
    commentService.isValidCommentVisibility(user, issue, visibility, errorCollection);
    validateCommentProperties(commentParams, errorCollection);
  }