public boolean isPipelineEditable(String pipelineName) { return isPipelineEditable(new CaseInsensitiveString(pipelineName)); }
@RequestMapping(value = "/tab/pipeline/history", method = RequestMethod.GET) public ModelAndView list(@RequestParam("pipelineName") String pipelineName) { Map model = new HashMap(); try { PipelineConfig pipelineConfig = goConfigService.pipelineConfigNamed(new CaseInsensitiveString(pipelineName)); model.put("pipelineName", pipelineConfig.name()); model.put("isEditableViaUI", goConfigService.isPipelineEditable(pipelineName)); return new ModelAndView("pipeline/pipeline_history", model); } catch (PipelineNotFoundException e) { model.put("errorMessage", e.getMessage()); return new ModelAndView("exceptions_page", model); } }
private ModelAndView getModelAndView(JobInstance jobDetail) { final JobDetailPresentationModel presenter = presenter(jobDetail); Map data = new HashMap(); data.put("presenter", presenter); data.put("websocketEnabled", Toggles.isToggleOn(Toggles.BROWSER_CONSOLE_LOG_WS)); data.put("useIframeSandbox", systemEnvironment.useIframeSandbox()); data.put("isEditableViaUI", goConfigService.isPipelineEditable(jobDetail.getPipelineName())); data.put("isAgentAlive", goConfigService.hasAgent(jobDetail.getAgentUuid())); addElasticAgentInfo(jobDetail, data); return new ModelAndView("build_detail/build_detail_page", data); }
public List<TemplateToPipelines> getTemplatesList(Username username) { List<TemplateToPipelines> templateToPipelinesForUser = new ArrayList<>(); List<Role> roles = goConfigService.rolesForUser(username.getUsername()); Map<CaseInsensitiveString, Map<CaseInsensitiveString, Authorization>> allTemplatesAssociatedWithPipelines = goConfigService.getCurrentConfig().templatesWithAssociatedPipelines(); for (CaseInsensitiveString templateName : allTemplatesAssociatedWithPipelines.keySet()) { if (securityService.isAuthorizedToViewTemplate(templateName, username)) { Map<CaseInsensitiveString, Authorization> pipelinesWithAuthorization = allTemplatesAssociatedWithPipelines.get(templateName); TemplateToPipelines templateToPipelines = new TemplateToPipelines(templateName, securityService.isAuthorizedToEditTemplate(templateName, username), securityService.isUserAdmin(username)); templateToPipelinesForUser.add(templateToPipelines); for (CaseInsensitiveString pipelineName : pipelinesWithAuthorization.keySet()) { templateToPipelines.add(new PipelineEditabilityInfo(pipelineName, canAuthorizedTemplateUserEditPipeline(username, roles, pipelinesWithAuthorization.get(pipelineName)), goConfigService.isPipelineEditable(pipelineName))); } } } return templateToPipelinesForUser; }
private void updateGroupAdministrability(Username username, PipelineGroupModels groupModels) { for (PipelineGroupModel groupModel : groupModels.asList()) { if (!goConfigService.isUserAdminOfGroup(username.getUsername(), groupModel.getName())) { continue; } for (PipelineModel pipelineModel : groupModel.getPipelineModels()) { if (goConfigService.isPipelineEditable(pipelineModel.getName())) pipelineModel.updateAdministrability(true); } } }
public PipelineModel latestPipelineModel(Username username, String pipelineName) { PipelineInstanceModel instanceModel = latest(pipelineName, username); if (instanceModel != null) { boolean canForce = schedulingCheckerService.canManuallyTrigger(pipelineName, username); PipelinePauseInfo pauseInfo = pipelinePauseService.pipelinePauseInfo(pipelineName); PipelineModel pipelineModel = new PipelineModel(pipelineName, canForce, securityService.hasOperatePermissionForPipeline( username.getUsername(), pipelineName ), pauseInfo); populateLockStatus(instanceModel.getName(), username, instanceModel); pipelineModel.addPipelineInstance(instanceModel); String groupName = goConfigService.findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); if (goConfigService.isPipelineEditable(pipelineName)) pipelineModel.updateAdministrability(goConfigService.isUserAdminOfGroup(username.getUsername(), groupName)); else pipelineModel.updateAdministrability(false); return pipelineModel; } return null; }