@PublicApi
public interface AvatarManager
Avatar
domain objects.Modifier and Type | Interface and Description |
---|---|
static class |
AvatarManager.ImageSize
Deprecated.
in JIRA 6.0 -- use
Avatar.Size . |
Modifier and Type | Field and Description |
---|---|
static String |
AVATAR_IMAGE_FORMAT |
static AvatarFormat |
AVATAR_IMAGE_FORMAT_FULL |
static AvatarFormat |
AVATAR_IMAGE_FORMAT_SVG |
static String |
PNG_CONTENT_TYPE |
static String |
SVG_CONTENT_TYPE |
static String |
USER_AVATAR_ID_KEY |
Modifier and Type | Method and Description |
---|---|
Avatar |
create(Avatar.Type avatarType,
String owningObjectId,
AvatarImageDataProvider imageDataProvider)
Creates a database record for the given avatar and uses the content of the InputStream as the image.
|
Avatar |
create(Avatar avatar)
Creates a database record for the given avatar.
|
Avatar |
create(Avatar avatar,
InputStream image,
Selection selection)
Creates a database record for the given avatar and uses the content of the InputStream as the image.
|
Avatar |
create(String fileName,
String contentType,
ApplicationUser owner,
InputStream image,
Selection selection)
Creates a database record for the given avatar and uses the content of the InputStream as the image.
|
Avatar |
create(String fileName,
String contentType,
Project owner,
InputStream image,
Selection selection)
Creates a database record for the given avatar and uses the content of the InputStream as the image.
|
boolean |
delete(Long avatarId)
Delete the avatar with the given id and the file on disk.
|
boolean |
delete(Long avatarId,
boolean alsoDeleteAvatarFile)
Delete the avatar with the given id.
|
List<Avatar> |
getAllSystemAvatars(Avatar.Type type)
Provides a list of all system avatars.
|
Long |
getAnonymousAvatarId()
Gets the avatar id to use to represent an unknown or anonymous user
|
File |
getAvatarBaseDirectory()
Returns the directory for storing avatars.
|
Avatar |
getById(Long avatarId)
Retrieve the avatar with the given id.
|
Avatar |
getByIdTagged(Long avatarId)
Retrieve the avatar with the given id,
ensuring the avatar file is tagged with metadata identifying the image came from JIRA.
|
List<Avatar> |
getCustomAvatarsForOwner(Avatar.Type type,
String ownerId)
Deprecated.
there can only be one. Since v6.4.
|
Long |
getDefaultAvatarId(Avatar.Type ofType)
Gets the default avatar for the given type.
|
boolean |
hasPermissionToEdit(ApplicationUser remoteUser,
ApplicationUser owner)
Determines if the remoteUser provided has permission to edit avatars of a certain type for the owner provided.
|
boolean |
hasPermissionToEdit(ApplicationUser remoteUser,
Avatar.Type type,
String ownerId)
|
boolean |
hasPermissionToEdit(ApplicationUser remoteUser,
Project owner)
Determines if the remoteUser provided has permission to edit avatars of a certain type for the owner provided.
|
boolean |
hasPermissionToView(ApplicationUser remoteUser,
ApplicationUser owner)
Determines if the remoteUser provided has permission to view avatars of a certain type for the owner provided.
|
boolean |
hasPermissionToView(ApplicationUser remoteUser,
Avatar.Type type,
String ownerId)
|
boolean |
hasPermissionToView(ApplicationUser remoteUser,
Project owner)
Determines if the remoteUser provided has permission to view avatars of a certain type for the owner provided.
|
boolean |
isAvatarOwner(Avatar avatar,
String ownerId)
Deprecated.
To be removed. Since v6.0
|
void |
readAvatarData(Avatar avatar,
Avatar.Size size,
AvatarFormatPolicy avatarFormatPolicy,
MediaConsumer mediaConsumer)
Provides read-only access to the data of the avatar image as an
InputStream passed to the
provided dataAccessor. |
void |
readAvatarData(Avatar avatar,
Avatar.Size size,
Consumer<InputStream> dataAccessor)
Provides read-only access to the data of the avatar image as an
InputStream passed to the
provided dataAccessor. |
void |
readAvatarData(Avatar avatar,
AvatarManager.ImageSize size,
Consumer<InputStream> dataAccessor)
Deprecated.
v7.0.1 Please use
readAvatarData(Avatar, Avatar.Size, Consumer) |
void |
update(Avatar avatar)
Saves the avatar as an updated version of the avatar with the same id that is already in the database.
|
static final String AVATAR_IMAGE_FORMAT
static final String PNG_CONTENT_TYPE
static final String SVG_CONTENT_TYPE
static final AvatarFormat AVATAR_IMAGE_FORMAT_FULL
static final AvatarFormat AVATAR_IMAGE_FORMAT_SVG
static final String USER_AVATAR_ID_KEY
Avatar getById(Long avatarId) throws DataAccessException
avatarId
- must not be null.DataAccessException
- if there is a back-end database problem.Avatar getByIdTagged(Long avatarId) throws DataAccessException
avatarId
- must not be null.DataAccessException
- if there is a back-end database problem.boolean delete(Long avatarId) throws DataAccessException
avatarId
- must not be null.DataAccessException
- if there is a back-end database problem.boolean delete(Long avatarId, boolean alsoDeleteAvatarFile)
avatarId
- must not be null.alsoDeleteAvatarFile
- if false, the avatar file will be left on disk.DataAccessException
- if there is a back-end database problem.void update(Avatar avatar) throws DataAccessException
avatar
- must not be null.DataAccessException
- if there is a back-end database problem.@Nonnull Avatar create(Avatar avatar) throws DataAccessException
avatar
- must not be null, must have a null id.DataAccessException
- if there is a back-end database problem.@Nonnull Avatar create(Avatar avatar, InputStream image, Selection selection) throws DataAccessException, IOException
avatar
- must not be null, must have a null id.image
- the data of the original avatar image.selection
- the cropping selection for the image or null to take whole image.DataAccessException
- if there is a back-end database problem.IOException
@Nonnull Avatar create(Avatar.Type avatarType, @Nonnull String owningObjectId, @Nonnull AvatarImageDataProvider imageDataProvider) throws IOException
avatarType
- type of new avatar to create.owningObjectId
- id of object (project/user/issuetype) to which this avatar is connected to.imageDataProvider
- provider of image dataDataAccessException
- if there is a back-end database problem.IOException
- if there are arrors when processing image dataCroppingAvatarImageDataProviderFactory
@Nonnull Avatar create(String fileName, String contentType, Project owner, InputStream image, Selection selection) throws DataAccessException, IOException
fileName
- the name of the avatarcontentType
- MIME content type for the avatarimage
- the data of the original avatar image (it will be automatically closed)selection
- the cropping selection for the image or null to take whole imageDataAccessException
- if there is a back-end database problem.IOException
@Nonnull Avatar create(String fileName, String contentType, ApplicationUser owner, InputStream image, Selection selection) throws DataAccessException, IOException
fileName
- the name of the avatarcontentType
- MIME content type for the avatarimage
- the data of the original avatar image (it will be automatically closed)selection
- the cropping selection for the image or null to take whole imageDataAccessException
- if there is a back-end database problem.IOException
@Nonnull List<Avatar> getAllSystemAvatars(Avatar.Type type) throws DataAccessException
type
- The type of system avatars to returnDataAccessException
- if there is a back-end database problem.@Nonnull @Deprecated List<Avatar> getCustomAvatarsForOwner(Avatar.Type type, String ownerId) throws DataAccessException
type
- the desired type of the avatars to retrieve.ownerId
- the id of the owner, matches the type (project id or user key).DataAccessException
- if there is a back-end database problem.boolean isAvatarOwner(Avatar avatar, String ownerId)
avatar
- the avatar to check, must not be null.ownerId
- the ownerId to check, must not be null.void readAvatarData(Avatar avatar, AvatarManager.ImageSize size, Consumer<InputStream> dataAccessor) throws IOException
readAvatarData(Avatar, Avatar.Size, Consumer)
InputStream
passed to the
provided dataAccessor. The InputStream is closed after the dataAccessor completes. The dataAccessor is
immediately invoked on the data for the avatar.avatar
- the avatar for which the data is to be processed.size
- the size to return for this avatardataAccessor
- something to read the data.IOException
- if an IOException occurs in the dataAccessor or in acquiring the InputStream for the
avatar.readAvatarData(Avatar, Avatar.Size, AvatarFormatPolicy, MediaConsumer)
void readAvatarData(@Nonnull Avatar avatar, @Nonnull Avatar.Size size, @Nonnull Consumer<InputStream> dataAccessor) throws IOException
InputStream
passed to the
provided dataAccessor. The InputStream is closed after the dataAccessor completes. The dataAccessor is
immediately invoked on the data for the avatar.
This is equivalent to calling readAvatarData(Avatar, Avatar.Size, AvatarFormatPolicy, MediaConsumer)
with
AvatarFormatPolicy.createOriginalDataPolicy()
as the requested type and Optional.empty()
as type Accessor.
avatar
- the avatar for which the data is to be processed.size
- the size to return for this avatardataAccessor
- something to read the data.IOException
- if an IOException occurs in the dataAccessor or in acquiring the InputStream for the
avatar.readAvatarData(Avatar, Avatar.Size, AvatarFormatPolicy, MediaConsumer)
@ExperimentalApi void readAvatarData(@Nonnull Avatar avatar, @Nonnull Avatar.Size size, @Nonnull AvatarFormatPolicy avatarFormatPolicy, @Nonnull MediaConsumer mediaConsumer) throws IOException
InputStream
passed to the
provided dataAccessor. The InputStream is closed after the dataAccessor completes. The dataAccessor is
immediately invoked on the data for the avatar.
The format that the image will be served in, is determined by the AvatarFormatPolicy
that is provided
as a parameter. This should be used to set the content type of the data being provided to the @Consumer
. If the parameters are non-strict, it will be a best attempt, and to know which content type
has been used please provide a typeAccessor.
avatar
- the avatar for which the data is to be processed.size
- the size to return for this avataravatarFormatPolicy
- the requested format for avatar data.mediaConsumer
- consumer that will read the data.IOException
- if an IOException occurs in the dataAccessor or in acquiring the InputStream for the
avatar.IllegalArgumentException
- If a strict request is made, but it is not possible to obey@Nonnull File getAvatarBaseDirectory()
Long getDefaultAvatarId(Avatar.Type ofType)
ofType
- the Avatar type.Long getAnonymousAvatarId()
boolean hasPermissionToView(ApplicationUser remoteUser, Avatar.Type type, String ownerId)
hasPermissionToView(com.atlassian.jira.user.ApplicationUser, ApplicationUser)
or hasPermissionToView(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.project.Project)
. Since v6.0remoteUser
- The remote user trying to view an avatartype
- The type of avatarownerId
- The owner id of the avatar being viewed (project id or user key)boolean hasPermissionToView(ApplicationUser remoteUser, ApplicationUser owner)
remoteUser
- The remote user trying to view an avatarowner
- The owner of the avatar being viewedboolean hasPermissionToView(ApplicationUser remoteUser, Project owner)
remoteUser
- The remote user trying to view an avatarowner
- The owner of the avatar being viewedboolean hasPermissionToEdit(ApplicationUser remoteUser, Avatar.Type type, String ownerId)
hasPermissionToEdit(ApplicationUser, ApplicationUser)
or hasPermissionToEdit(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.project.Project)
. Since v6.0remoteUser
- The remote user trying to edit an avatartype
- The type of avatarownerId
- The owner id of the avatar being edited (project id or user key)boolean hasPermissionToEdit(ApplicationUser remoteUser, ApplicationUser owner)
remoteUser
- The remote user trying to edit an avatarowner
- The owner of the avatar being editedboolean hasPermissionToEdit(ApplicationUser remoteUser, Project owner)
remoteUser
- The remote user trying to edit an avatarowner
- The owner of the avatar being editedCopyright © 2002-2015 Atlassian. All Rights Reserved.