private boolean userNameListContainsAdmin(List<String> enabledUserNames) { for (String enabledUserName : enabledUserNames) { if (securityService.isUserAdmin(new Username(new CaseInsensitiveString(enabledUserName)))) { return true; } } return false; }
public Optional<CaseInsensitiveString> optCaseInsensitiveString(String property) { if (hasJsonObject(property)) { try { return Optional.of(new CaseInsensitiveString(jsonObject.get(property).getAsString())); } catch (Exception e) { throw haltBecausePropertyIsNotAJsonString(property, jsonObject); } } return Optional.empty(); }
private void checkAndAddSuperAdmin(String username, Set<GrantedAuthority> authorities) { if (securityService.isUserAdmin(new Username(new CaseInsensitiveString(username)))) { authorities.add(GoAuthority.ROLE_SUPERVISOR.asAuthority()); } } }
public static AdminsConfig fromJSON(JsonReader jsonReader) { AdminsConfig adminsConfig = new AdminsConfig(); jsonReader.readArrayIfPresent("users", users -> { users.forEach(user -> adminsConfig.add(new AdminUser(new CaseInsensitiveString(user.getAsString())))); }); jsonReader.readArrayIfPresent("roles", roles -> { roles.forEach(role -> adminsConfig.add(new AdminRole(new CaseInsensitiveString(role.getAsString())))); }); return adminsConfig; }
private PipelineTemplateConfig findTemplate(String templateName, HttpLocalizedOperationResult result, GoConfigHolder configHolder) { if (!doesTemplateExist(templateName, configHolder.configForEdit, result)) { return null; } return configHolder.configForEdit.findTemplate(new CaseInsensitiveString(templateName)); } }
@Test public void shouldDetectDependencyMaterialUsedInFetchArtifactFromAncestor() { DependencyMaterial material = new DependencyMaterial(new CaseInsensitiveString("parent-pipeline"), new CaseInsensitiveString("stage-bar")); PipelineConfig pipelineConfig = mock(PipelineConfig.class); ArrayList<FetchTask> fetchTasks = new ArrayList<>(); fetchTasks.add(new FetchTask(new CaseInsensitiveString("grandparent-pipeline/parent-pipeline"), new CaseInsensitiveString("grandparent-stage"), new CaseInsensitiveString("grandparent-job"), "src", "dest")); when(pipelineConfig.getFetchTasks()).thenReturn(fetchTasks); assertThat(material.isUsedInFetchArtifact(pipelineConfig), is(true)); }
private void removeJobIfNotPresentInCruiseConfig(CruiseConfig newCruiseConfig, JobPlan jobPlan) { if (!newCruiseConfig.hasBuildPlan(new CaseInsensitiveString(jobPlan.getPipelineName()), new CaseInsensitiveString(jobPlan.getStageName()), jobPlan.getName(), true)) { removeJob(jobPlan); } }
private boolean validateRemovalOfRemotePipelines(EnvironmentConfig preprocessedEnvironmentConfig) { for (String pipelineToRemove : pipelinesToRemove) { if (preprocessedEnvironmentConfig.containsPipelineRemotely(new CaseInsensitiveString(pipelineToRemove))) { String origin = ((MergeEnvironmentConfig) preprocessedEnvironmentConfig).getOriginForPipeline(new CaseInsensitiveString(pipelineToRemove)).displayName(); String message = String.format("Pipeline '%s' cannot be removed from environment '%s' as the association has been defined remotely in [%s]", pipelineToRemove, environmentConfig.name(), origin); result.unprocessableEntity(LocalizedMessage.composite(actionFailed, message)); return false; } } return true; }
private boolean containsInRole(String username) { for (PluginRoleConfig role : allowedRoles) { for (RoleUser r : role.getUsers()) { if (r.getName().equals(new CaseInsensitiveString(username))) return true; } } return false; }
public boolean hasViewPermissionForPipeline(Username username, String pipelineName) { String groupName = goConfigService.findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); if (groupName == null) { return true; } return hasViewPermissionForGroup(CaseInsensitiveString.str(username.getUsername()), groupName); }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = createNewPackageDefinition(cruiseConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)); pipelineConfig.addMaterialConfig(packageMaterialConfig); } }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = getPackageDefinition(cruiseConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); PipelineConfig pipelineConfig = cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)); pipelineConfig.addMaterialConfig(packageMaterialConfig); } }
public void schedule(String pipelineName, PipelineScheduleOptions pipelineScheduleOptions, Username username, final HttpOperationResult result) { LOGGER.info("[Pipeline Schedule] [Requested] Manual trigger of pipeline '{}' requested by {}", pipelineName, CaseInsensitiveString.str(username.getUsername())); ScheduleOptions scheduleOptions = new ScheduleOptionsBuilder(goConfigService).build(result, pipelineName, pipelineScheduleOptions); if (result.canContinue()) { LOGGER.info("[Pipeline Schedule] [Accepted] Manual trigger of pipeline '{}' accepted for user {}", pipelineName, CaseInsensitiveString.str(username.getUsername())); buildCauseProducerService.manualSchedulePipeline(username, new CaseInsensitiveString(pipelineName), scheduleOptions, result); LOGGER.info("[Pipeline Schedule] [Processed] Manual trigger of pipeline '{}' processed with result '{}'", pipelineName, result.getServerHealthState()); } } }
@Override public void onEntityConfigChange(PipelineConfig pipelineConfig) { for (String lockedPipeline : pipelineStateDao.lockedPipelines()) { if (pipelineConfig.name().equals(new CaseInsensitiveString(lockedPipeline)) && !pipelineConfig.isLockable()) { unlock(lockedPipeline); break; } } } };
private ValueStreamMap buildValueStreamMap(Material material, MaterialInstance materialInstance, Modification modification, List<PipelineConfig> downstreamPipelines, Username username) { CruiseConfig cruiseConfig = goConfigService.currentCruiseConfig(); ValueStreamMap valueStreamMap = new ValueStreamMap(material, materialInstance, modification); Map<CaseInsensitiveString, List<PipelineConfig>> pipelineToDownstreamMap = cruiseConfig.generatePipelineVsDownstreamMap(); traverseDownstream(new CaseInsensitiveString(material.getFingerprint()), downstreamPipelines, pipelineToDownstreamMap, valueStreamMap, new ArrayList<>()); addInstanceInformationToTheGraph(valueStreamMap); removeRevisionsBasedOnPermissionAndCurrentConfig(valueStreamMap, username); return valueStreamMap; }
@Override protected void updateConfig(CruiseConfig cruiseConfig) { PackageDefinition packageDefinition = createNewPackageDefinition(cruiseConfig); packageMaterialConfig = (PackageMaterialConfig) cruiseConfig.pipelineConfigByName(new CaseInsensitiveString(pipeline)).materialConfigs().get(packageMaterialConfig); packageMaterialConfig.setPackageDefinition(packageDefinition); } }
public void checkAdminOrTemplateAdminAnd403(Request request, Response response) { if (!securityService.isSecurityEnabled() || securityService.isUserAdmin(currentUsername())) { return; } String templateName = request.params("template_name"); if (StringUtils.isNotBlank(templateName) && !securityService.isAuthorizedToEditTemplate(new CaseInsensitiveString(templateName), currentUsername())) { throw renderForbiddenResponse(); } if (StringUtils.isBlank(templateName) && !securityService.isAuthorizedToViewAndEditTemplates(currentUsername())) { throw renderForbiddenResponse(); } }
@Test public void shouldPassEqualsCheckIfFingerprintIsSame() { PackageMaterial material1 = MaterialsMother.packageMaterial(); material1.setName(new CaseInsensitiveString("name1")); PackageMaterial material2 = MaterialsMother.packageMaterial(); material2.setName(new CaseInsensitiveString("name2")); assertThat(material1.equals(material2), is(true)); }
private void populateDownstreamPipelineState(Username username, PipelineInstanceModel pipelineInstanceModel) { populatePlaceHolderStages(pipelineInstanceModel); populatePipelineCanRunStatus(username, pipelineInstanceModel); populateCanRunStatus(username, pipelineInstanceModel); populateStageOperatePermission(pipelineInstanceModel, username); pipelineInstanceModel.setMaterialConfigs(goConfigService.materialConfigsFor(new CaseInsensitiveString(pipelineInstanceModel.getName()))); }
@Override public StageNotificationData notificationDataFor(Stage stage) { String pipelineName = stage.getIdentifier().getPipelineName(); String pipelineGroup = goConfigService.findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); BuildCause buildCause = pipelineSqlMapDao.findBuildCauseOfPipelineByNameAndCounter(pipelineName, stage.getIdentifier().getPipelineCounter()); if (goConfigService.hasPreviousStage(pipelineName, stage.getName())) { stage.setPreviousStage(previousStage(stage)); } return new StageNotificationData(stage, buildCause, pipelineGroup); } }