private Project getProjectOfComponent(ProjectComponent component) { return projectManager.getProjectObj(component.getProjectId()); }
private Collection<Project> getProjectsFor(Collection<ProjectComponent> components) { ProjectManager projectManager = ComponentAccessor.getProjectManager(); HashSet<Project> projects = new HashSet<Project>(components.size()); for (ProjectComponent component : components) { projects.add(projectManager.getProjectObj(component.getProjectId())); } return projects; }
private Collection<Project> getProjectsFor(Collection<ProjectComponent> components) { ProjectManager projectManager = ComponentAccessor.getProjectManager(); HashSet<Project> projects = new HashSet<Project>(components.size()); for (ProjectComponent component : components) { projects.add(projectManager.getProjectObj(component.getProjectId())); } return projects; }
private void checkProjectAdminPermission(Handler handler, ProjectComponent component, ApplicationUser user) { if (component == null) { handler.addErrorKey(KEY_NO_SUCH_COMPONENT, null, ErrorCollection.Reason.FORBIDDEN); } else { Long projectId = component.getProjectId(); checkProjectAdminPermission(handler, projectId, user); } }
public boolean showPanel(BrowseComponentContext context) { return !fieldVisibilityManager.isFieldHiddenInAllSchemes(context.getComponent().getProjectId(), IssueFieldConstants.COMPONENTS); }
private Project getComponentsProject(Long componentId) { final ProjectComponent component; try { component = projectComponentManager.find(componentId); } catch (EntityNotFoundException e) { return null; } return projectManager.getProjectObj(component.getProjectId()); }
private void checkProjectAdminPermission(ErrorCollection errorCollection, ProjectComponent component, ApplicationUser user) { if (component == null) { errorCollection.addErrorMessage(translateKeyToMessage(KEY_NO_SUCH_COMPONENT, null), ErrorCollection.Reason.FORBIDDEN); } else { Long projectId = component.getProjectId(); checkProjectAdminPermission(errorCollection, projectId, user); } }
/** * Invalidate the caches for the given component/project. * * @param component component to be updated in cache */ private void updateCache(ProjectComponent component) { Long id = component.getId(); Long projectId = component.getProjectId(); componentIdToComponentMap.remove(id); projectIdToComponentsMap.remove(projectId); }
/** * Looks up the project ID for the given component ID. If project is not found, throws EntityNotFoundException. * * @param componentId component ID * @return project ID * @throws EntityNotFoundException if project not found for the given component ID */ public Long findProjectIdForComponent(Long componentId) throws EntityNotFoundException { ProjectComponent component = componentIdToComponentMap.get(componentId).getValue(); if (component == null) { throw new EntityNotFoundException("The component with the id '" + componentId + "' does not exist."); } return component.getProjectId(); }
@Override void checkPermissions() { try { ProjectComponent component = projectComponentManager.find(componentId); checkProjectAdminPermission(this, component.getProjectId(), context.getLoggedInUser()); } catch (EntityNotFoundException e) { if (componentId != null) { addErrorKey(KEY_NO_SUCH_COMPONENT_WITH_ID, componentId.toString(), ErrorCollection.Reason.FORBIDDEN); } else { addErrorKey(KEY_NO_SUCH_COMPONENT, null, ErrorCollection.Reason.FORBIDDEN); } } }
public Map<String, String> getComponentsUserLeadsWarning() { final Map<String, String> componentNamesAndURLs = Maps.newHashMap(); for (ProjectComponent component : getComponentsUserLeads()) { UrlBuilder fullURL = newUrlBuilder(); fullURL.addPaths("/plugins/servlet/project-config"); Project project = getProjectManager().getProjectObj(component.getProjectId()); fullURL.addPaths("/" + project.getKey() + "/components"); componentNamesAndURLs.put(component.getName(), fullURL.asUrlString()); } return componentNamesAndURLs; }
/** * Removes the component from the persistent storage and a cache. * * @param componentId the id of the component to delete * @throws EntityNotFoundException if component does not exist (maybe was removed previously :-) */ public void delete(Long componentId) throws EntityNotFoundException { ProjectComponent component = null; if (componentId != null) { component = delegateStore.find(componentId); } delegateStore.delete(componentId); if (componentId != null) { componentIdToComponentMap.remove(componentId); } if (component != null) { projectIdToComponentsMap.remove(component.getProjectId()); } }
/** * Convert the specified ProjectComponent to a MutableProjectComponent object and sets its project ID with the given * value. * * @param value ProjectComponent to be converted into a MutableProjectComponent. * @return new instance of MutableProjectComponent with same values as given in the parameter object and with * project ID set */ protected MutableProjectComponent convertToMutableProjectComponent(ProjectComponent value) { return new MutableProjectComponent(value.getId(), value.getName(), value.getDescription(), value.getLead(), value.getAssigneeType(), value.getProjectId()); }
private Project getProject(ProjectComponent component) { ProjectService.GetProjectResult projectResult = projectService.getProjectById(authContext.getUser(), component.getProjectId()); if (!projectResult.isValid()) { throw new NotFoundWebException(ErrorCollection.of(projectResult.getErrorCollection())); } return projectResult.getProject(); } private Project getProjectForAdmin(ProjectComponent component)
private Project getProjectForAdmin(ProjectComponent component) { ProjectService.GetProjectResult projectResult = projectService.getProjectByIdForAction(authContext.getUser(), component.getProjectId(), EDIT_PROJECT_CONFIG); if (!projectResult.isValid()) { throw new NotFoundWebException(ErrorCollection.of(projectResult.getErrorCollection())); } return projectResult.getProject(); }
/** * Copy given component * * @param c component to copy * @return new instance of MutableProjectComponent set with values of the given component */ public static MutableProjectComponent copy(final ProjectComponent c) { MutableProjectComponent mutableProjectComponent = new MutableProjectComponent(c.getId(), c.getName(), c.getDescription(), c.getLead(), c.getAssigneeType(), c.getProjectId()); mutableProjectComponent.setGenericValue(c.getGenericValue()); return mutableProjectComponent; }
/** * Getter for all the {@link Build}s related to the given {@link ProjectComponent} * * @param component the {@link ProjectComponent} to get all the builds for * @param user the current logged in {@link User} * @return the collection of {@link Build}s */ public Iterable<? extends Build> getBuildsByRelation(ProjectComponent component, User user) { LOGGER.debug("Looking for builds related to component [{}]", component.getName()); return getBuildsByRelation(JqlQueryBuilder.newBuilder().where().project(component.getProjectId()).and().addClause(JqlQueryBuilder .newClauseBuilder().component(component.getId()).buildClause()).endWhere(), user); }
@Override public void appendNonNullItem(ProjectComponent value, JqlClauseBuilder clauseBuilder) { final Long id = value.getId(); final Long projectId = value.getProjectId(); try { final ProjectComponent projectComponent = projectComponentManager.find(id); final String componentName = projectComponent.getName(); final Project project = projectManager.getProjectObj(projectId); clauseBuilder.sub().component(componentName).and().project(project.getKey()).endsub(); } catch (EntityNotFoundException e) { log.error("Unable to retrieve component with id '" + id + "'."); clauseBuilder.component(id).project(projectId); } }
@Override public Map<String, Object> fieldMapFrom(final ProjectComponent projectComponent) { return new FieldMap("id", projectComponent.getId()) .add("project", projectComponent.getProjectId()) .add("name", projectComponent.getName()) .add("description", projectComponent.getDescription()) // URL is currently not included in the object // .add("url", projectComponent.getXxx()) .add("lead", projectComponent.getLead()) .add("assigneetype", projectComponent.getAssigneeType()); }
/** * Get search link for component field scoped within a project of the passed component. * * @param component The component object to generate the link from. * @return String with search URL that includes base url, empty String if null parameter was passed. */ @HtmlSafe @Override public String getComponentSearchLink(ProjectComponent component) { if (component == null) { return ""; } final Query projectAndComponent = JqlQueryBuilder.newBuilder().where() .project(projectManager.getProjectObj(component.getProjectId()).getKey()) .and().component(component.getName()) .buildQuery(); return getLinkForQuery(projectAndComponent); }