Class AvatarServiceImpl

java.lang.Object
com.atlassian.jira.avatar.AvatarServiceImpl
All Implemented Interfaces:
AvatarService

public class AvatarServiceImpl extends Object implements AvatarService
Implementation of the AvatarService. Uses AvatarPlugin module for user Avatars.
Since:
v4.3
  • Constructor Details

  • Method Details

    • getAvatar

      public Avatar getAvatar(ApplicationUser remoteUser, String username) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the Avatar for the given user, if configured. If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the default avatar. If the user does not exist, this method returns the anonymous avatar.

      If this method would return the default user avatar but none is configured, or if this method would return the anonymous avatar but none is configured, this method returns null.

      Specified by:
      getAvatar in interface AvatarService
      Parameters:
      remoteUser - the User that wants to view an Avatar
      username - a String containing a username (may have been deleted)
      Returns:
      an Avatar, or null
      Throws:
      AvatarsDisabledException - if avatars are disabled
    • getAvatar

      public Avatar getAvatar(ApplicationUser remoteUser, ApplicationUser avatarUser) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the Avatar for the given user, if configured. If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the default avatar. If the user does not exist, this method returns the anonymous avatar.

      If this method would return the default user avatar but none is configured, or if this method would return the anonymous avatar but none is configured, this method returns null.

      Specified by:
      getAvatar in interface AvatarService
      Parameters:
      remoteUser - the User that wants to view an Avatar
      avatarUser - the User that the avatar will be returned for (if null it will return a default avatar if it's set or null)
      Returns:
      an Avatar, or null
      Throws:
      AvatarsDisabledException - if avatars are disabled
    • getAvatarTagged

      public Avatar getAvatarTagged(ApplicationUser remoteUser, ApplicationUser avatarUser) throws AvatarsDisabledException
      Specified by:
      getAvatarTagged in interface AvatarService
      Throws:
      AvatarsDisabledException
    • getAvatarURL

      public URI getAvatarURL(ApplicationUser remoteUser, String username) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the user having the given username for displaying on a page that should be shown for the passed in remoteUser. This method returns a URL for an avatar with the default size.

      If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the URL of the default avatar. If the user does not exist, this method returns the URL of the anonymous avatar.

      Specified by:
      getAvatarURL in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      username - a String containing a username (may have been deleted)
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
      See Also:
    • getGravatarAvatarURL

      public Optional<URI> getGravatarAvatarURL(ApplicationUser avatarUser, Avatar.Size size)
      Description copied from interface: AvatarService
      If Gravatar is enabled returns Gravatar url for given user at given size.

      Specified by:
      getGravatarAvatarURL in interface AvatarService
      Parameters:
      avatarUser - a User to get the avatar for (if null, Optional.empty() is returned)
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
    • getAvatarURL

      public URI getAvatarURL(ApplicationUser remoteUser, ApplicationUser avatarUser) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the user having the given username for displaying on a page that should be shown for the passed in remoteUser. This method returns a URL for an avatar with the default size.

      If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the URL of the default avatar. If the user does not exist, this method returns the URL of the anonymous avatar.

      Specified by:
      getAvatarURL in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      avatarUser - a User object to get the avatar for (if null, the default avatar is used)
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
      See Also:
    • getAvatarURL

      public URI getAvatarURL(ApplicationUser remoteUser, String username, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the user having the given username for displaying on a page that should be shown for the passed in remoteUser.

      If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the URL of the default avatar. If the user does not exist, this method returns the URL of the anonymous avatar.

      Specified by:
      getAvatarURL in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      username - a String containing a username (may have been deleted)
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
      See Also:
    • getAvatarURL

      public URI getAvatarURL(ApplicationUser remoteUser, ApplicationUser avatarUser, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the user having the given username for displaying on a page that should be shown for the passed in remoteUser.

      If the user does not have a custom avatar, or if the calling user does not have permission to view the Avatar, this method returns the URL of the default avatar. If the user does not exist, this method returns the URL of the anonymous avatar.

      Specified by:
      getAvatarURL in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      avatarUser - a User to get the avatar for (if null, the default avatar is used)
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
      See Also:
    • getAvatarUrlNoPermCheck

      public URI getAvatarUrlNoPermCheck(String username, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      This is the same as AvatarService.getAvatarURL(ApplicationUser, String, Size) but does no permission checking.
      Specified by:
      getAvatarUrlNoPermCheck in interface AvatarService
      Parameters:
      username - a String containing a username (may have been deleted)
      size - the size of the avatar to be displayed
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
    • getAvatarUrlNoPermCheck

      public URI getAvatarUrlNoPermCheck(ApplicationUser avatarUser, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      This is the same as AvatarService.getAvatarURL(ApplicationUser, String, Size) but does no permission checking.
      Specified by:
      getAvatarUrlNoPermCheck in interface AvatarService
      Parameters:
      avatarUser - a String containing a username (if null, the default avatar is used)
      size - the size of the avatar to be displayed
      Returns:
      a URL that can be used to display the avatar
      Throws:
      AvatarsDisabledException - if avatars are disabled
    • getAvatarUrlNoPermCheck

      public URI getAvatarUrlNoPermCheck(ApplicationUser avatarUser, Avatar avatar, @Nonnull Avatar.Size size)
      Builds a URI for a JIRA avatar with the requested size.
      Specified by:
      getAvatarUrlNoPermCheck in interface AvatarService
      Parameters:
      avatarUser - the ApplicationUser whose avatar we'd like to display
      avatar - the Avatar whose URI we want
      size - the size in which the avatar should be displayed
      Returns:
      a URI that can be used to display the avatar
      See Also:
    • getAvatarAbsoluteURL

      public URI getAvatarAbsoluteURL(ApplicationUser remoteUser, String username, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      This is the same as AvatarService.getAvatarURL(ApplicationUser, String, Avatar.Size) but returns an absolute URL.
      Specified by:
      getAvatarAbsoluteURL in interface AvatarService
      Throws:
      AvatarsDisabledException
    • getAvatarAbsoluteURL

      public URI getAvatarAbsoluteURL(ApplicationUser remoteUser, ApplicationUser avatarUser, Avatar.Size size) throws AvatarsDisabledException
      Description copied from interface: AvatarService
      This is the same as AvatarService.getAvatarURL(ApplicationUser, String, Avatar.Size) but returns an absolute URL.
      Specified by:
      getAvatarAbsoluteURL in interface AvatarService
      Throws:
      AvatarsDisabledException
    • hasCustomUserAvatar

      public boolean hasCustomUserAvatar(ApplicationUser remoteUser, String username)
      Description copied from interface: AvatarService
      Returns true if the user has configured a custom avatar, false otherwise.
      Specified by:
      hasCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      username - the username of the user whose avatar we will check
      Returns:
      a boolean indicating whether the given user has configued a custom avatar
    • hasCustomUserAvatar

      public boolean hasCustomUserAvatar(ApplicationUser remoteUser, ApplicationUser user)
      Description copied from interface: AvatarService
      Returns true if the user has configured a custom avatar, false otherwise.
      Specified by:
      hasCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      user - the username of the user whose avatar we will check
      Returns:
      a boolean indicating whether the given user has configued a custom avatar
    • setCustomUserAvatar

      public void setCustomUserAvatar(ApplicationUser remoteUser, String username, Long avatarId) throws AvatarsDisabledException, NoPermissionException
      Description copied from interface: AvatarService
      Sets a custom avatar for a given user.
      Specified by:
      setCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      username - the username of the user whose avatar we will configure
      avatarId - the id of the avatar to configure for the user
      Throws:
      AvatarsDisabledException - if avatars are disabled
      NoPermissionException - if the remote user does not have permission to update the given user's avatar
      See Also:
    • setCustomUserAvatar

      public void setCustomUserAvatar(ApplicationUser remoteUser, ApplicationUser user, Long avatarId) throws AvatarsDisabledException, NoPermissionException
      Description copied from interface: AvatarService
      Sets a custom avatar for a given user.
      Specified by:
      setCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      user - the user whose avatar we will configure
      avatarId - the id of the avatar to configure for the user
      Throws:
      AvatarsDisabledException - if avatars are disabled
      NoPermissionException - if the remote user does not have permission to update the given user's avatar
      See Also:
    • canSetCustomUserAvatar

      public boolean canSetCustomUserAvatar(ApplicationUser remoteUser, String username)
      Description copied from interface: AvatarService
      Returns a boolean indicating whether the calling user can edit the custom user avatar for the user with the given username.
      Specified by:
      canSetCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      username - the username of the user whose avatar we will configure
      Returns:
      a indicating whether the calling user can edit the custom user avatar for another user
    • canSetCustomUserAvatar

      public boolean canSetCustomUserAvatar(ApplicationUser remoteUser, ApplicationUser user)
      Description copied from interface: AvatarService
      Returns a boolean indicating whether the calling user can edit the custom user avatar for the user with the given username.
      Specified by:
      canSetCustomUserAvatar in interface AvatarService
      Parameters:
      remoteUser - a User object for the currently logged in user
      user - the user whose avatar we will configure
      Returns:
      a indicating whether the calling user can edit the custom user avatar for another user
    • getProjectAvatarURL

      public URI getProjectAvatarURL(Project project, Avatar.Size size)
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the given project.

      If running in the context of a web request, this will return a URL relative to the server root (ie "/jira/..."). Otherwise, it will return an absolute URL (eg. "http://example.com/jira/...").

      Specified by:
      getProjectAvatarURL in interface AvatarService
      Parameters:
      project - the Project of which to get the avatar URL
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
    • getProjectAvatarAbsoluteURL

      public URI getProjectAvatarAbsoluteURL(Project project, Avatar.Size size)
      Description copied from interface: AvatarService
      Returns the URL for the avatar of the given project.

      This will always return an absolute URL (eg. "http://example.com/jira/...").

      Specified by:
      getProjectAvatarAbsoluteURL in interface AvatarService
      Parameters:
      project - the Project of which to get the avatar URL
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
    • getProjectDefaultAvatarURL

      public URI getProjectDefaultAvatarURL(Avatar.Size size)
      Description copied from interface: AvatarService
      Returns the URL for the default avatar of a project.

      If running in the context of a web request, this will return a URL relative to the server root (ie "/jira/..."). Otherwise, it will return an absolute URL (eg. "http://example.com/jira/...").

      Specified by:
      getProjectDefaultAvatarURL in interface AvatarService
      Parameters:
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
    • getProjectDefaultAvatarAbsoluteURL

      public URI getProjectDefaultAvatarAbsoluteURL(Avatar.Size size)
      Description copied from interface: AvatarService
      Returns the URL for the default avatar of a project.

      This will always return an absolute URL (eg. "http://example.com/jira/...").

      Specified by:
      getProjectDefaultAvatarAbsoluteURL in interface AvatarService
      Parameters:
      size - the size of the avatar to be displayed (if null, the default size is used)
      Returns:
      a URL that can be used to display the avatar
    • configuredAvatarIdFor

      protected Long configuredAvatarIdFor(ApplicationUser user)
      Returns the avatar id that is configured for the given User. If the user has not configured an avatar, this method returns null.
      Parameters:
      user - the user whose avatar we want
      Returns:
      an avatar id, or null
    • isGravatarEnabled

      public boolean isGravatarEnabled()
      Returns true if Gravatar support is enabled.
      Specified by:
      isGravatarEnabled in interface AvatarService
      Returns:
      a boolean indicating whether Gravatar support is on
    • isUsingExternalAvatar

      public boolean isUsingExternalAvatar(ApplicationUser remoteUser, ApplicationUser avatarUser)
      Description copied from interface: AvatarService
      Check whether a user currently has an external avatar (for example, a Gravatar). Use AvatarService.getAvatarURL(ApplicationUser, ApplicationUser) to get the avatar URL.
      Specified by:
      isUsingExternalAvatar in interface AvatarService
      Returns:
      a boolean indicating whether the given currently user has an external avatar
    • setConfiguredAvatarIdFor

      protected void setConfiguredAvatarIdFor(ApplicationUser user, Long avatarId)
      Sets the given avatar id as the configured avatar id for a user.
      Parameters:
      user - the User whose avatar is being configured
      avatarId - the avatar id to configure
    • getAnonymousAvatar

      protected Avatar getAnonymousAvatar()
      Returns the anonymous avatar, if configured. Otherwise returns null.
      Returns:
      the anonymous avatar, or null