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); } } }
@Test public void shouldCopyAllInternalsOfPipelineModelWhenCreatingANewOneIfNeeded() throws Exception { PipelineGroupModel groupModel = new PipelineGroupModel("group"); PipelineModel expectedModel = addInstanceTo(new PipelineModel("p1", true, true, PipelinePauseInfo.notPaused())); expectedModel.updateAdministrability(true); groupModel.add(expectedModel); PipelineModel actualModel = groupModel.getPipelineModel("p1"); String message = String.format("\nExpected: %s\nActual: %s", reflectionToString(expectedModel), reflectionToString(actualModel)); assertThat(message, EqualsBuilder.reflectionEquals(actualModel, expectedModel), is(true)); }
private PipelineModel pipelineModelFor(PipelineConfig pipelineConfig, PipelineInstanceModels historyForDashboard) { String pipelineName = str(pipelineConfig.name()); PipelinePauseInfo pauseInfo = pipelinePauseService.pipelinePauseInfo(pipelineName); boolean canBeForced = schedulingCheckerService.pipelineCanBeTriggeredManually(pipelineConfig); PipelineModel pipelineModel = new PipelineModel(pipelineName, canBeForced, true, pauseInfo); pipelineModel.updateAdministrability(pipelineConfig.isLocal()); pipelineModel.addPipelineInstances(instancesFor(pipelineConfig, historyForDashboard)); return pipelineModel; }
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; }