import static com.google.common.collect.FluentIterable.from;
import static com.google.common.collect.Ordering.natural;
import static java.lang.String.format;
-import static org.sonar.server.permission.DefaultPermissionTemplates.DEFAULT_TEMPLATE_PROPERTY;
import static org.sonar.server.permission.DefaultPermissionTemplates.defaultRootQualifierTemplateProperty;
import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser;
import static org.sonar.server.permission.ws.Parameters.PARAM_QUALIFIER;
private void setDefaultTemplateUuid(String templateUuid, String qualifier) {
settings.saveProperty(defaultRootQualifierTemplateProperty(qualifier), templateUuid);
- if (Qualifiers.PROJECT.equals(qualifier)) {
- settings.saveProperty(DEFAULT_TEMPLATE_PROPERTY, templateUuid);
- }
}
}
public void start() {
Profiler profiler = Profiler.create(Loggers.get(getClass())).startInfo("Register permission templates");
+ boolean shouldRegister = shouldRegister();
- if (shouldRegister()) {
- if (hasExistingPermissionsConfig()) {
- String projectsPermissionsKey = settings.getString(defaultRootQualifierTemplateProperty(Qualifiers.PROJECT));
- setDefaultProperty(projectsPermissionsKey);
- } else {
- insertDefaultTemplate();
- setDefaultProperty(PermissionTemplateDto.DEFAULT.getKee());
- }
+ if (hasExistingPermissionsConfig()) {
+ // needs to be done at each startup in the case a plugin has just been installed. The default property must be the project one
+ String defaultProjectPermissionTemplateUuid = settings.getString(defaultRootQualifierTemplateProperty(Qualifiers.PROJECT));
+ setDefaultProperty(defaultProjectPermissionTemplateUuid);
+ } else if (shouldRegister) {
+ insertDefaultTemplate();
+ setDefaultProperty(PermissionTemplateDto.DEFAULT.getKee());
+ }
+
+ if (shouldRegister) {
registerInitialization();
}
+
profiler.stopDebug();
}
}
private void setDefaultProperty(String defaultTemplate) {
- if (settings.getString(DEFAULT_TEMPLATE_PROPERTY) == null) {
- LOG.info("Set default permission template: " + defaultTemplate);
- settings.saveProperty(DEFAULT_TEMPLATE_PROPERTY, defaultTemplate);
- }
+ settings.saveProperty(DEFAULT_TEMPLATE_PROPERTY, defaultTemplate);
}
}
String result = newRequest(template.getUuid(), null);
assertThat(result).isEmpty();
- assertThat(persistentSettings.getString(DEFAULT_TEMPLATE_PROPERTY)).isEqualTo(template.getUuid());
+ assertThat(persistentSettings.getString(DEFAULT_TEMPLATE_PROPERTY)).isEqualTo("any-template-uuid");
assertThat(persistentSettings.getString(defaultRootQualifierTemplateProperty(PROJECT))).isEqualTo(template.getUuid());
assertThat(persistentSettings.getString(defaultRootQualifierTemplateProperty(VIEW))).isEqualTo("any-view-template-uuid");
assertThat(persistentSettings.getString(defaultRootQualifierTemplateProperty("DEV"))).isEqualTo("any-dev-template-uuid");
RegisterPermissionTemplates initializer = new RegisterPermissionTemplates(dbClient, settings);
initializer.start();
- verifyZeroInteractions(permissionTemplateDao, settings);
+ verifyZeroInteractions(permissionTemplateDao);
verify(loadedTemplateDao, never()).insert(any(LoadedTemplateDto.class));
}