Interface EmailFormatter

All Known Implementing Classes:
EmailFormatterImpl

@PublicApi public interface EmailFormatter
Returned email address appropriately masked/hidden for the current user.
  • Method Details

    • emailVisible

      boolean emailVisible(@Nullable ApplicationUser currentUser)
      Returns whether or not email addresses are visible to this user, as determined by the APKeys.JIRA_OPTION_EMAIL_VISIBLE setting.
      Parameters:
      currentUser - the user to which email addresses will be shown, or null if no user is logged in (browsing anonymously)
      Returns:
      true if email addresses should be visible (even if they will be masked); false otherwise
      Since:
      v4.3 (moved to API in v6.0)
    • formatEmail

      @Nullable String formatEmail(@Nullable ApplicationUser user, @Nullable ApplicationUser currentUser)
      Formats user's email address for the purpose of displaying it to currentUser, as determined by the APKeys.JIRA_OPTION_EMAIL_VISIBLE setting.

      This convenience method is exactly equivalent to formatEmail(user.getEmailAddress(), currentUser != null), except that it is null-safe.

      Parameters:
      user - owner of the email address to format and display (null is permitted)
      currentUser - the user to which email addresses will be shown, or null if no user is logged in (browsing anonymously)
      Returns:
      the formatted email address; null if either user is null or currentUser is not permitted to see email addresses
      Since:
      v4.3 (moved to API in v6.0)
    • formatEmail

      @Nullable String formatEmail(@Nullable String email, boolean isCurrentUserLoggedIn)
      Formats an email address for the purpose of displaying it to a user as determined by the APKeys.JIRA_OPTION_EMAIL_VISIBLE setting.

      SettingBehaviour
      "show"The email is shown as-is to everyone.
      "user"The email is shown as-is to users that are logged in, but not shown to anonymous users.
      "mask"The email is shown to all users with the e-mail address slightly obscured, such that "user@example.com" appears as "user at example dot com", instead
      Parameters:
      email - The email address to show/mask/hide.
      isCurrentUserLoggedIn - true if a user is currently logged in; false if the user is browsing anonymously
      Returns:
      the formatted email address; null if either email is null or the user is not permitted to see email addresses
    • formatEmail

      @Nullable String formatEmail(@Nullable String email, @Nullable ApplicationUser currentUser)
      Formats an email address for the purpose of displaying it to a user as determined by the APKeys.JIRA_OPTION_EMAIL_VISIBLE setting.

      This convenience method is exactly equivalent to formatEmail(email, currentUser != null).

      Parameters:
      email - The email address to show/mask/hide.
      currentUser - The user viewing the email address.
      Returns:
      the formatted email address; null if either email is null or the user is not permitted to see email addresses
      Since:
      v4.3 (moved to API in v6.0)
    • formatEmailAsLink

      @Nonnull String formatEmailAsLink(String email, @Nullable ApplicationUser currentUser)
      Returns email address as HTML links, if appropriate. If email addresses are masked, then they are returned as HTML-escaped text, but not as links.
      Returns:
      <a href="foo@bar.com">foo@bar.com</a> (public), foo at bar.com (masked), or an empty string ("") if either email is null or the user is not permitted to see email addresses
      Since:
      v4.3 (moved to API in v6.0)