private Map<String, Object> getNonPkFields(Avatar avatar) { final Map<String, Object> fields = new HashMap<>(); fields.put(FILE_NAME, avatar.getFileName()); fields.put(CONTENT_TYPE, avatar.getContentType()); fields.put(AVATAR_TYPE, avatar.getAvatarType().getName()); fields.put(OWNER, avatar.getOwner()); fields.put(SYSTEM_AVATAR, avatar.isSystemAvatar() ? IS_SYSTEM : NOT_SYSTEM); return fields; }
checkArgument(avatar.isSystemAvatar(), "Avatar must be a system avatar");
private MailAttachment createUserAvatarAttachment(final ApplicationUser user) { final String userName = null == user ? "anonymous" : user.getName(); final String avatarOwnerDescription = "user: " + userName; final Avatar avatar = avatarService.getAvatarTagged(user, user); final Optional<Avatar> jiraAvatar = getJiraAvatar(avatar); if (jiraAvatar.isPresent() && isSvgType(jiraAvatar.get()) && jiraAvatar.get().isSystemAvatar()) { return MailAttachments.newTranscodedAvatarAttachment(jiraAvatar.get(), avatarOwnerDescription, avatarTranscoder); } return MailAttachments.newAvatarAttachment(avatar, avatarOwnerDescription, avatarManager); }
/** * Create a list of AvatarBeans given the passed List of Avatar domain objects. * * @return the List of AvatarBeans from the passed List of Avatar domain objects. */ public List<AvatarBean> createAvatarBeans(final List<Avatar> avatars, final ApplicationUser avatarUser) { final List<AvatarBean> beans = Lists.newArrayListWithCapacity(avatars.size()); for (Avatar avatar : avatars) { final Long id = avatar.getId(); final Map<String, URI> avatarURLs = UserBeanBuilder.getAvatarURLs(id, jiraAvatarSupport); beans.add(new AvatarBean(id.toString(), avatar.getOwner(), avatar.isSystemAvatar(), avatarURLs)); } return beans; }
private List<AvatarBean> createAvatarBeans(final Iterable<Avatar> avatars, final ApplicationUser remoteUser, final AvatarImageResolver uriResolver) { List<AvatarBean> beans = Lists.newArrayList(); for (Avatar avatar : avatars) { final AvatarBean bean = new AvatarBean( avatar.getId().toString(), avatar.getOwner(), avatar.isSystemAvatar(), avatarUrls.getAvatarURLs(remoteUser, avatar, uriResolver) ); beans.add(bean); } return beans; }
private MailAttachment createIssueTypeAvatarAttachment(final IssueType issueType, @Nonnull final Avatar avatar) { if (isSvgType(avatar) && avatar.isSystemAvatar()) { return MailAttachments.newTranscodedAvatarAttachment(avatar, "issue type: " + issueType.getName(), avatarTranscoder); } return MailAttachments.newAvatarAttachment(avatar, "issue type: " + issueType.getName(), avatarManager); }
@Override public boolean userCanViewAvatar(final ApplicationUser user, final Avatar avatar) { if (!hasCorrectType(avatar)) { return false; } if (avatar.isSystemAvatar()) { return true; } final long owningProjectId = Long.parseLong(avatar.getOwner()); final Project project = projectManager.getProjectObj(owningProjectId); boolean hasPermission = null != project; hasPermission = hasPermission && hasUserPermissionToProject(user, project); return hasPermission; }
/** * Checks that the avatar id is for an existing suitable avatar. * * @param avatarId null or the id of an existing avatar * @param oldProject the project before the update, null if this is a create. * @param errorCollection the errorCollection * @param i18nHelper the I18nHelper */ private void validateAvatarId(final Long avatarId, final Project oldProject, final ErrorCollection errorCollection, final I18nHelper i18nHelper) { if (avatarId == null) { return; } final Avatar avatar = avatarManager.getById(avatarId); if (avatar == null) { errorCollection.addErrorMessage(i18nHelper.getText("admin.errors.avatar.does.not.exist", avatarId), Reason.VALIDATION_FAILED); } else if (!avatar.isSystemAvatar() && !oldProject.getId().toString().equals(avatar.getOwner())) { errorCollection.addErrorMessage(i18nHelper.getText("admin.errors.invalid.avatar")); } }
if (jiraAvatar.get().isSystemAvatar())
if (avatar.isSystemAvatar())
RemoteAvatar createRemoteAvatar(final Avatar a, final boolean large, final Base64InputStreamConsumer data) { final long id = a.getId(); final String contentType = a.getContentType(); final String type = a.getAvatarType().getName(); try { if (large) { avatarManager.readAvatarData(a, AvatarManager.ImageSize.LARGE, data); } else { avatarManager.readAvatarData(a, AvatarManager.ImageSize.SMALL, data); } } catch (IOException e) { log.error("Exception trying to get Avatar image data, continuing without it", e); } return new RemoteAvatar(id, contentType, a.getOwner(), a.isSystemAvatar(), type, data.getEncoded()); }
public void deleteProjectAvatar(final User user, final long avatarId) throws RemoteException { final Avatar avatar = avatarManager.getById(avatarId); // only when the avtatar is system, the owner is null, but we check either since we cannot proceed either way if (avatar == null || avatar.isSystemAvatar() || avatar.getOwner() == null) { throw new RemoteException("No such custom Avatar with id " + avatarId); } Project project = retrieveProjectForAdministration(user, Long.valueOf(avatar.getOwner())); final boolean deletingTheCurrentAvatar = project.getAvatar().getId() == avatarId; if (deletingTheCurrentAvatar) { // deleting the current one need to switch current avatar to default final Long defaultAvatarId = avatarManager.getDefaultAvatarId(Avatar.Type.PROJECT); final com.atlassian.jira.bc.project.ProjectService.UpdateProjectValidationResult updateProjectValidationResult = validateSetAvatar(user, project, defaultAvatarId); if (updateProjectValidationResult.isValid()) { projectService.updateProject(updateProjectValidationResult); avatarManager.delete(avatarId, true); } } else { avatarManager.delete(avatarId, true); } }