@Override final public SystemAndCustomAvatars getAvatars(final ApplicationUser remoteUser, final String owningObjectId) { final List<Avatar> systemAvatars = avatarManager.getAllSystemAvatars(type); final List<Avatar> avatarsForOwner = avatarManager.getCustomAvatarsForOwner(type, owningObjectId); return new SystemAndCustomAvatars(systemAvatars, avatarsForOwner); }
private Avatar getAvatarOrDefault(final Long avatarId) { Avatar assignedAvatar = avatarManager.getById(avatarId); if ( null==assignedAvatar ) { assignedAvatar = avatarManager.getById(avatarManager.getDefaultAvatarId(Avatar.Type.ISSUETYPE)); } return assignedAvatar; }
private Avatar createAvatar(final String fileName) { log.info("Creating system user avatar " + fileName); return avatarManager.create(AvatarImpl.createSystemAvatar(fileName, "image/png", Avatar.Type.USER)); }
/** * Returns the anonymous avatar, if configured. Otherwise returns null. * * @return the anonymous avatar, or null */ protected Avatar getAnonymousAvatar() { Long anonAvatarId = avatarManager.getAnonymousAvatarId(); return anonAvatarId != null ? avatarManager.getById(anonAvatarId) : null; }
selectedAvatarId = avatarManager.getDefaultAvatarId(type); final List<Avatar> allSystemAvatars = avatarManager.getAllSystemAvatars(type); final List<AvatarBean> systemAvatarBeans = avatarBeanFactory.createAvatarBeans(allSystemAvatars, avatarUser); setSelectedAvatar(selectedAvatarId, systemAvatarBeans); avatars.put("system", systemAvatarBeans); final List<Avatar> customAvatarsForOwner = avatarManager.getCustomAvatarsForOwner(type, ownerId); final List<AvatarBean> customAvatarBeans = avatarBeanFactory.createAvatarBeans(customAvatarsForOwner, avatarUser); avatars.put("custom", customAvatarBeans);
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); } }
Avatar avatar = avatarManager.getById(id); if (avatar == null) if (!avatarManager.hasPermissionToEdit(authContext.getUser(), avatar.getAvatarType(), avatar.getOwner())) boolean deleted = avatarManager.delete(id, true);
for (Avatar avatar : avatarManager.getAllSystemAvatars(Avatar.Type.USER)) avatarManager.delete(systemAvatarId);
public Long getDefaultAvatar() { return avatarManager.getDefaultAvatarId(Avatar.Type.PROJECT); }
@Override public Avatar getAvatar(final ApplicationUser remoteUser, final long avatarId) { final Avatar currentAvatar = avatarManager.getById(avatarId); final boolean userCanViewAvatar = currentAvatar != null ? policy.userCanViewAvatar(remoteUser, currentAvatar) : false; return userCanViewAvatar ? currentAvatar : null; }
ByteArrayInputStream bais = new ByteArrayInputStream(decoded); final Avatar toCreate = AvatarImpl.createCustomAvatar(AVATAR_DEFAULT_BASE_FILENAME, contentType, project); Avatar createdAvatar = avatarManager.create(toCreate, bais, AvatarManager.ImageSize.LARGE.getOriginSelection()); IOUtil.shutdownStream(bais); final Long avatarId = createdAvatar.getId(); avatarManager.delete(createdAvatar.getId(), true); throw new RemoteException("Error setting Avatar on project: " + result.getErrorCollection());
@Override protected Long validateInput(String projectId, Long avatarId, final HttpServletResponse response) throws IOException { if (StringUtils.isBlank(projectId)) { // no project id - send default avatar for project return getAvatarManager().getDefaultAvatarId(Avatar.Type.PROJECT); } else { final Project project = getProjectManager().getProjectObj(Long.parseLong(projectId)); if (project == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unknown project"); return null; } if (!getAvatarManager().hasPermissionToView(getAuthenticationContext().getUser(), project)) { // no permission to see any avatar for this project response.sendError(HttpServletResponse.SC_FORBIDDEN, "Unknown project"); return null; } if (avatarId == null) { return project.getAvatar().getId(); } } return avatarId; }
/** * Returns all system avatars of the given type. * * @param type - Type of avatars (User or Project) * @return all system avatars for the given type * * @response.representation.200.qname * avatars * * @response.representation.200.mediaType * application/json * * @response.representation.200.doc * Returns a map containing a list of system avatars. A map is returned to be consistent with the shape of the * {link #getAllAvatars} method. * * @response.representation.200.example * {@link AvatarBean#DOC_EXAMPLE_SYSTEM_LIST} * * @response.representation.500.doc * Returned if an error occurs while retrieving the list of avatars. */ public Response getAllSystemAvatars(final Avatar.Type type) { Map<String, List<AvatarBean>> avatars = new HashMap<String, List<AvatarBean>>(); AvatarBeanFactory avatarBeanFactory = new AvatarBeanFactory(jiraAvatarSupport); final List<AvatarBean> systemAvatarBeans = avatarBeanFactory.createAvatarBeans(avatarManager.getAllSystemAvatars(type), null); avatars.put("system", systemAvatarBeans); return Response.ok(avatars).cacheControl(NO_CACHE).build(); }
@Override public ToBodyPartConsumer prepareBodyPart() throws IOException { final ToBodyPartConsumer dataAccessor = new ToBodyPartConsumer(avatar.getContentType()); // The size we provide here must match the dimensions of the embedded avatar image in // jira-components/jira-core/src/main/resources/templates/email/html/includes/header.vm , otherwise // Outlook will rewrite the image and destroy our JIRA metadata needed for JRA-25705 avatarManager.readAvatarData(avatar, MEDIUM, dataAccessor); return dataAccessor; } }
@Override public boolean canSetCustomUserAvatar(ApplicationUser remoteUser, ApplicationUser user) { return avatarManager.hasPermissionToEdit(remoteUser, user); }
private URI getAnonymousProfilePictureUri(URI baseUri) { final String baseUriStr = baseUri == null ? applicationProperties.getBaseUrl() : baseUri.toASCIIString(); return URI.create(baseUriStr + "/secure/useravatar?avatarId=" + avatarManager.getAnonymousAvatarId()); }
public void doUpgrade(boolean setupMode) throws Exception { // first check if there are any existing system avatars. and get rid of them just in case! for (Avatar avatar : avatarManager.getAllSystemAvatars(Avatar.Type.USER)) { log.info("Deleting existing system avatar"); avatarManager.delete(avatar.getId()); } // for each system avatar file, add the system avatar createAvatar("angel.png"); createAvatar("businessman.png"); createAvatar("businessman2.png"); createAvatar("devil.png"); createAvatar("doctor.png"); createAvatar("dude1.png"); createAvatar("dude2.png"); createAvatar("dude3.png"); createAvatar("dude4.png"); createAvatar("dude5.png"); createAvatar("ghost.png"); createAvatar("security_agent.png"); createAvatar("user1.png"); createAvatar("user2.png"); createAvatar("user3.png"); createAvatar("user_headphones.png"); Avatar a = createAvatar("userprofile_silhouette.png"); applicationProperties.setString(APKeys.JIRA_DEFAULT_USER_AVATAR_ID, a.getId().toString()); }
public BrowseProjects( final UserProjectHistoryManager projectHistoryManager, final ProjectManager projectManager, final PermissionManager permissionManager, final SimpleLinkManager simpleLinkManager, final WebInterfaceManager webInterfaceManager, final AvatarManager avatarManager, final PageBuilderService pageBuilderService, final UserFormats userFormats, final ProjectTypeManager projectTypeManager, final BrowseProjectTypeManager browseProjectTypeManager, final ProjectTypesDarkFeature projectTypesDarkFeature) { this.projectHistoryManager = projectHistoryManager; this.projectManager = projectManager; this.permissionManager = permissionManager; this.simpleLinkManager = simpleLinkManager; this.webInterfaceManager = webInterfaceManager; this.pageBuilderService = pageBuilderService; this.userFormats = userFormats; this.projectTypeManager = projectTypeManager; this.browseProjectTypeManager = browseProjectTypeManager; this.projectTypesDarkFeature = projectTypesDarkFeature; PROJECT_DEFAULT_AVATAR_ID = avatarManager.getDefaultAvatarId(Avatar.Type.PROJECT); }
/** * In some cases getting an id of avatar might return null or throw an Exception. * This method handles this critical path and tries to obtain JIRA specific avatar. */ private Optional<Avatar> getJiraAvatar(final Avatar avatar) { try { final Long avatarId = avatar.getId(); if (avatarId == null) { return Optional.empty(); } else { return Optional.ofNullable(avatarManager.getById(avatarId)); } } catch (Exception e) { log.debug("Could not obtain JIRA avatar.", e); return Optional.empty(); } } }
List<Avatar> existingSystemProjectAvatars = avatarManager.getAllSystemAvatars(Avatar.Type.PROJECT); List<String> avatarsToCreate = new ArrayList<String>(newSystemProjectAvatars);