package org.sonar.server.permission;
+import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.ServerComponent;
this.userDao = userDao;
}
+ @CheckForNull
+ public PermissionTemplate selectPermissionTemplate(String templateName) {
+ PermissionTemplateUpdater.checkUserCredentials();
+ PermissionTemplateDto permissionTemplateDto = permissionDao.selectPermissionTemplate(templateName);
+ return PermissionTemplate.create(permissionTemplateDto);
+ }
+
+ public List<PermissionTemplate> selectAllPermissionTemplates() {
+ PermissionTemplateUpdater.checkUserCredentials();
+ List<PermissionTemplate> permissionTemplates = Lists.newArrayList();
+ List<PermissionTemplateDto> permissionTemplateDtos = permissionDao.selectAllPermissionTemplates();
+ if(permissionTemplateDtos != null) {
+ for (PermissionTemplateDto permissionTemplateDto : permissionTemplateDtos) {
+ permissionTemplates.add(PermissionTemplate.create(permissionTemplateDto));
+ }
+ }
+ return permissionTemplates;
+ }
+
public PermissionTemplate createPermissionTemplate(String name, String description) {
PermissionTemplateUpdater.checkUserCredentials();
- PermissionTemplateDto permissionTemplateDto = permissionDao.createPermissionTemplate(name, description);
checkThatTemplateNameIsUnique(name);
- if(permissionTemplateDto == null) {
+ PermissionTemplateDto permissionTemplateDto = permissionDao.createPermissionTemplate(name, description);
+ if(permissionTemplateDto.getId() == null) {
String errorMsg = "Template creation failed";
LOG.error(errorMsg);
throw new ServerErrorException(errorMsg);
return PermissionTemplate.create(permissionTemplateDto);
}
- @CheckForNull
- public PermissionTemplate selectPermissionTemplate(String templateName) {
- PermissionTemplateUpdater.checkUserCredentials();
- PermissionTemplateDto permissionTemplateDto = permissionDao.selectPermissionTemplate(templateName);
- return PermissionTemplate.create(permissionTemplateDto);
- }
-
public void deletePermissionTemplate(String templateName) {
PermissionTemplateUpdater.checkUserCredentials();
PermissionTemplateDto permissionTemplateDto = permissionDao.selectTemplateByName(templateName);
import org.sonar.server.notifications.NotificationCenter;
import org.sonar.server.notifications.NotificationService;
import org.sonar.server.permission.InternalPermissionService;
+import org.sonar.server.permission.InternalPermissionTemplateService;
import org.sonar.server.plugins.*;
import org.sonar.server.qualitymodel.DefaultModelManager;
import org.sonar.server.rule.RubyRuleService;
servicesContainer.addSingleton(DefaultUserFinder.class);
servicesContainer.addSingleton(DefaultUserService.class);
servicesContainer.addSingleton(InternalPermissionService.class);
+ servicesContainer.addSingleton(InternalPermissionTemplateService.class);
// components
servicesContainer.addSingleton(DefaultRubyComponentService.class);
assertThat(permissionTemplate.getGroupsForPermission(Permission.SYSTEM_ADMIN.key())).containsOnly("admin_group");
}
+ @Test
+ public void should_retrieve_all_permission_templates() throws Exception {
+ PermissionTemplateDto template1 =
+ new PermissionTemplateDto().setId(1L).setName("template1").setDescription("template1");
+ PermissionTemplateDto template2 =
+ new PermissionTemplateDto().setId(2L).setName("template2").setDescription("template2");
+ when(permissionDao.selectAllPermissionTemplates()).thenReturn(Lists.newArrayList(template1, template2));
+
+ List<PermissionTemplate> templates = permissionTemplateService.selectAllPermissionTemplates();
+
+ assertThat(templates).hasSize(2);
+ assertThat(templates).onProperty("id").containsOnly(1L, 2L);
+ assertThat(templates).onProperty("name").containsOnly("template1", "template2");
+ assertThat(templates).onProperty("description").containsOnly("template1", "template2");
+ }
+
@Test
public void should_add_user_permission() throws Exception {
UserDto userDto = new UserDto().setId(1L).setLogin("user").setName("user");