private String getPipelineGroup() { if (group == null) { this.group = goConfigService.findGroupNameByPipeline(pipelineConfig.name()); } return group; }
private String findPipelineGroupName(Request request) { String groupName = request.params("group_name"); if (StringUtils.isBlank(groupName)) { groupName = goConfigService.findGroupNameByPipeline(getPipelineNameFromRequest(request)); } return groupName; }
public boolean hasOperatePermissionForPipeline(final CaseInsensitiveString username, String pipelineName) { String groupName = goConfigService.findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); if (groupName == null) { return true; } return hasOperatePermissionForGroup(username, groupName); }
public boolean hasAdminPermissionsForPipeline(Username username, CaseInsensitiveString pipelineName) { String groupName = goConfigService.findGroupNameByPipeline(pipelineName); if (groupName == null) { return true; } return isUserAdminOfGroup(username.getUsername(), groupName); }
private boolean canEditPipeline(String pipelineName, Username username, LocalizedOperationResult result) { return canEditPipeline(pipelineName, username, result, findGroupNameByPipeline(new CaseInsensitiveString(pipelineName))); }
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); }
public boolean canEditPipeline(String pipelineName, Username username) { PipelineConfig pipelineConfig; try { pipelineConfig = pipelineConfigNamed(new CaseInsensitiveString(pipelineName)); } catch (PipelineNotFoundException e) { return false; } return pipelineConfig != null && pipelineConfig.isLocal() && isUserAdminOfGroup(username.getUsername(), findGroupNameByPipeline(pipelineConfig.name())); }
@Override public boolean canContinue(CruiseConfig cruiseConfig) { String groupName = goConfigService.findGroupNameByPipeline(pipelineConfig.name()); if (goConfigService.groups().hasGroup(groupName) && !goConfigService.isUserAdminOfGroup(currentUser.getUsername(), groupName)) { result.forbidden(LocalizedMessage.forbiddenToDelete("Pipeline", pipelineConfig.getName()), HealthStateType.forbidden()); return false; } return true; } }
@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); } }
public String exportPipeline(Request req, Response res) { PipelineConfig pipelineConfig = pipelineConfigFromRequest(req); String pluginId = requiredQueryParam(req, "plugin_id"); String groupName = configService.findGroupNameByPipeline(pipelineConfig.getName()); if (!crPluginService.isConfigRepoPlugin(pluginId)) { throw haltBecauseOfReason("Plugin `%s` is not a config-repo plugin.", pluginId); } if (!crPluginService.supportsPipelineExport(pluginId)) { throw haltBecauseOfReason("Plugin `%s` does not support pipeline config export.", pluginId); } ConfigRepoPlugin repoPlugin = crPlugin(pluginId); String etag = repoPlugin.etagForExport(pipelineConfig, groupName); if (fresh(req, etag)) { return notModified(res); } else { setEtagHeader(res, etag); ExportedConfig export = repoPlugin.pipelineExport(pipelineConfig, groupName); res.header("Content-Type", export.getContentType()); res.header("Content-Disposition", format("attachment; filename=\"%s\"", export.getFilename())); return export.getContent(); } }
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; }
public boolean hasOperatePermissionForStage(String pipelineName, String stageName, String username) { if (!goConfigService.isSecurityEnabled()) { return true; } if (!goConfigService.hasStageConfigNamed(pipelineName, stageName)) { return false; } StageConfig stage = goConfigService.stageConfigNamed(pipelineName, stageName); CaseInsensitiveString userName = new CaseInsensitiveString(username); //TODO - #2517 - stage not exist if (stage.hasOperatePermissionDefined()) { CruiseConfig cruiseConfig = goConfigService.getCurrentConfig(); String groupName = goConfigService.findGroupNameByPipeline(new CaseInsensitiveString(pipelineName)); PipelineConfigs group = goConfigService.getCurrentConfig().findGroup(groupName); if (isUserAdmin(new Username(userName)) || isUserAdminOfGroup(userName, group)) { return true; } return goConfigService.readAclBy(pipelineName, stageName).isGranted(userName); } return hasOperatePermissionForPipeline(new CaseInsensitiveString(username), pipelineName); }