matchingTemplates.add(permissionTemplateDto);
}
}
+ checkAtMostOneMatchForComponentKey(componentKey, matchingTemplates);
+ if (matchingTemplates.size() == 1) {
+ return matchingTemplates.get(0).getKee();
+ }
+ String qualifierTemplateKey = settings.getString("sonar.permission.template." + qualifier + ".default");
+ if (!StringUtils.isBlank(qualifierTemplateKey)) {
+ return qualifierTemplateKey;
+ }
+
+ String defaultTemplateKey = settings.getString("sonar.permission.template.default");
+ if (StringUtils.isBlank(defaultTemplateKey)) {
+ throw new IllegalStateException("At least one default permission template should be defined");
+ }
+ return defaultTemplateKey;
+ }
+
+ private void checkAtMostOneMatchForComponentKey(final String componentKey, List<PermissionTemplateDto> matchingTemplates) {
if (matchingTemplates.size() > 1) {
StringBuilder templatesNames = new StringBuilder();
for (Iterator<PermissionTemplateDto> it = matchingTemplates.iterator(); it.hasNext();) {
"The following permission templates have a key pattern that matches the ''{0}'' key: {1}."
+ " The administrator must update them to make sure that only one permission template can be selected for 'foo.project' component.", componentKey,
templatesNames.toString()));
- } else if (matchingTemplates.size() == 1) {
- return matchingTemplates.get(0).getKee();
- }
- String qualifierTemplateKey = settings.getString("sonar.permission.template." + qualifier + ".default");
- if (!StringUtils.isBlank(qualifierTemplateKey)) {
- return qualifierTemplateKey;
}
-
- String defaultTemplateKey = settings.getString("sonar.permission.template.default");
- if (StringUtils.isBlank(defaultTemplateKey)) {
- throw new IllegalStateException("At least one default permission template should be defined");
- }
- return defaultTemplateKey;
}
}
public PermissionTemplate createPermissionTemplate(String name, @Nullable String description, @Nullable String keyPattern) {
PermissionTemplateUpdater.checkSystemAdminUser();
validateTemplateName(null, name);
- validateKeyPattern(null, keyPattern);
+ validateKeyPattern(keyPattern);
PermissionTemplateDto permissionTemplateDto = permissionTemplateDao.createPermissionTemplate(name, description, keyPattern);
if (permissionTemplateDto.getId() == null) {
String errorMsg = "Template creation failed";
public void updatePermissionTemplate(Long templateId, String newName, @Nullable String newDescription, @Nullable String newKeyPattern) {
PermissionTemplateUpdater.checkSystemAdminUser();
validateTemplateName(templateId, newName);
- validateKeyPattern(templateId, newKeyPattern);
+ validateKeyPattern(newKeyPattern);
permissionTemplateDao.updatePermissionTemplate(templateId, newName, newDescription, newKeyPattern);
}
}
}
- private void validateKeyPattern(@Nullable Long templateId, @Nullable String keyPattern) {
+ private void validateKeyPattern(@Nullable String keyPattern) {
if (StringUtils.isEmpty(keyPattern)) {
return;
}