DetailedProjectData(final long id, String key, String name, String leadUserName, String leadFullName, List<OpenIssuesData> openIssues, String projectDescription, boolean showOpen, boolean showDescription, Avatar avatar) { this.id = id; this.key = key; this.name = name; this.leadUserName = leadUserName; this.leadFullName = leadFullName; this.projectDescription = projectDescription; this.showOpen = showOpen; this.showDescription = showDescription; this.hasOpenIssuesStats = openIssues != null; this.openIssues = openIssues; this.avatarId = avatar.getId(); } }
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 Avatar create(final Avatar avatar) { Assertions.notNull("avatar", avatar); Assertions.stateTrue("avatar.id must be null", avatar.getId() == null); Assertions.notNull("avatar.fileName", avatar.getFileName()); Assertions.notNull("avatar.contentType", avatar.getContentType()); Assertions.notNull("avatar.avatarType", avatar.getAvatarType()); return gvToAvatar(ofBizDelegator.createValue(AVATAR_ENTITY, getNonPkFields(avatar))); }
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; }
/** * Returns true if the passed in user has permission to view the passed in avatar. By definition, any user can view * the system avatars (e.g. avatars with no owner). * * @param user a User * @param avatar an Avatar * @return a boolean indicating whether the passed in user has permission to view the passed in avatar */ protected boolean canViewAvatar(ApplicationUser user, Avatar avatar) { boolean hasPermission = avatarManager.hasPermissionToView(user, avatar.getAvatarType(), avatar.getOwner()); if (!hasPermission) { LOGGER.debug("User '{}' is not allowed to view avatar {}", user, avatar.getId()); } return hasPermission; }
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; }
File getAvatarFile(final Avatar avatar, final String sizeFlag) { final File base = getAvatarBaseDirectory(); return new File(base, avatar.getId() + "_" + sizeFlag + avatar.getFileName()); }
/** * Builds a URI for a JIRA avatar with the requested size. * * @param avatarUser the ApplicationUser whose avatar we'd like to display * @param avatar the Avatar whose URI we want * @param size the size in which the avatar should be displayed * @return a URI that can be used to display the avatar */ public URI getAvatarUrlNoPermCheck(final ApplicationUser avatarUser, final Avatar avatar, @Nonnull Size size) { final Long id = avatar.getId(); final String sizeName = size.getParam(); if (avatar.getAvatarType() == Avatar.Type.USER) { return URI.create(jiraAvatarSupport.get().getAvatarById(id, sizeName).getUrl()); } else { return getProjectAvatarUrl(avatar, size); } }
@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; }
checkArgument(avatar.isSystemAvatar(), "Avatar must be a system avatar");
if (!avatarManager.hasPermissionToEdit(authContext.getUser(), avatar.getAvatarType(), avatar.getOwner()))
@Override public boolean userCanViewAvatar(final ApplicationUser user, final Avatar avatar) { return Avatar.Type.ISSUETYPE == avatar.getAvatarType(); }
private static boolean isSvgType(final Avatar avatar) { return MailAttachments.isSvgType(avatar.getContentType()); }
protected boolean avatarOkForOwner(final String ownerId, final Avatar avatar) { final String owner = avatar.getOwner(); return owner == null || ownerId != null && IdentifierUtils.equalsInLowerCase(ownerId, owner); }
private String rasterAvatarFileName(final Avatar avatar, final Avatar.Size size) { return removeExtension(size.param + "_" + avatar.getFileName()) + PNG_EXTENSION; }
/** * 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; }
public File createAvatarFile(Avatar avatar, String flag) throws IOException { final File base = getAvatarBaseDirectory(); createDirectoryIfAbsent(base); return new File(base, avatar.getId() + "_" + flag + avatar.getFileName()); }
/** * 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")); } }
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); }