]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-4463 Fixed quality issues
authorJean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com>
Wed, 10 Jul 2013 14:05:32 +0000 (16:05 +0200)
committerJean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com>
Wed, 10 Jul 2013 14:05:32 +0000 (16:05 +0200)
sonar-core/src/main/java/org/sonar/core/resource/DefaultResourcePermissions.java
sonar-core/src/main/java/org/sonar/core/user/PermissionTemplateDto.java
sonar-core/src/test/java/org/sonar/core/resource/DefaultResourcePermissionsTest.java
sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplate.java

index 35506cd04ef863ab16501d11d2a12a3e1b926491..eb8febb0fc5cfa2bc64572bb2a7a47b2595a060f 100644 (file)
@@ -156,8 +156,9 @@ public class DefaultResourcePermissions implements ResourcePermissions, TaskExte
 
   private List<String> getEligibleGroups(String role, PermissionTemplateDto permissionTemplate) {
     List<String> eligibleGroups = new ArrayList<String>();
-    if(permissionTemplate.getGroupsPermissions() != null) {
-      for (PermissionTemplateGroupDto groupPermission : permissionTemplate.getGroupsPermissions()) {
+    List<PermissionTemplateGroupDto> groupsPermissions = permissionTemplate.getGroupsPermissions();
+    if(groupsPermissions != null) {
+      for (PermissionTemplateGroupDto groupPermission : groupsPermissions) {
         if(role.equals(groupPermission.getPermission())) {
           String groupName = groupPermission.getGroupName() != null ? groupPermission.getGroupName() : DefaultGroups.ANYONE;
           eligibleGroups.add(groupName);
@@ -169,8 +170,9 @@ public class DefaultResourcePermissions implements ResourcePermissions, TaskExte
 
   private List<String> getEligibleUsers(String role, PermissionTemplateDto permissionTemplate) {
     List<String> eligibleUsers = new ArrayList<String>();
-    if(permissionTemplate.getUsersPermissions() != null) {
-      for (PermissionTemplateUserDto userPermission : permissionTemplate.getUsersPermissions()) {
+    List<PermissionTemplateUserDto> usersPermissions = permissionTemplate.getUsersPermissions();
+    if(usersPermissions != null) {
+      for (PermissionTemplateUserDto userPermission : usersPermissions) {
         if(role.equals(userPermission.getPermission())) {
           eligibleUsers.add(userPermission.getUserLogin());
         }
@@ -187,7 +189,7 @@ public class DefaultResourcePermissions implements ResourcePermissions, TaskExte
 
     String defaultTemplateId = settings.getString("sonar.permission.template.default");
     if(StringUtils.isBlank(defaultTemplateId)) {
-      throw new RuntimeException("At least one default permission template should be defined");
+      throw new IllegalStateException("At least one default permission template should be defined");
     }
     return getTemplateWithPermissions(defaultTemplateId);
   }
@@ -195,11 +197,11 @@ public class DefaultResourcePermissions implements ResourcePermissions, TaskExte
   private PermissionTemplateDto getTemplateWithPermissions(String templateId) {
     PermissionTemplateDto permissionTemplateDto = permissionDao.selectTemplateById(Long.parseLong(templateId));
     if(permissionTemplateDto == null) {
-      throw new RuntimeException("Could not retrieve permission template with id " + templateId);
+      throw new IllegalArgumentException("Could not retrieve permission template with id " + templateId);
     }
     PermissionTemplateDto templateWithPermissions = permissionDao.selectPermissionTemplate(permissionTemplateDto.getName());
     if(templateWithPermissions == null) {
-      throw new RuntimeException("Could not retrieve permissions for template with id " + templateId);
+      throw new IllegalArgumentException("Could not retrieve permissions for template with id " + templateId);
     }
     return templateWithPermissions;
   }
index 3a2bc1b9095745de3727bb669906da7d1c930dd6..93db1524086b8d0b22c531f8394c7d10c46073ef 100644 (file)
@@ -68,7 +68,7 @@ public class PermissionTemplateDto {
     return usersPermissions;
   }
 
-  public PermissionTemplateDto setUsersPermissions(List<PermissionTemplateUserDto> usersPermissions) {
+  public PermissionTemplateDto setUsersPermissions(@Nullable List<PermissionTemplateUserDto> usersPermissions) {
     this.usersPermissions = usersPermissions;
     return this;
   }
@@ -78,7 +78,7 @@ public class PermissionTemplateDto {
     return groupsPermissions;
   }
 
-  public PermissionTemplateDto setGroupsByPermission(List<PermissionTemplateGroupDto> groupsPermissions) {
+  public PermissionTemplateDto setGroupsByPermission(@Nullable List<PermissionTemplateGroupDto> groupsPermissions) {
     this.groupsPermissions = groupsPermissions;
     return this;
   }
index ab69bc5eaa5057caaab8fbd867db0d7edaccc584..d3442d462836004e621696205a52ffa2181955ad 100644 (file)
@@ -20,7 +20,9 @@
 package org.sonar.core.resource;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 import org.sonar.api.config.Settings;
 import org.sonar.api.resources.Project;
 import org.sonar.api.resources.Resource;
@@ -38,6 +40,9 @@ public class DefaultResourcePermissionsTest extends AbstractDaoTestCase {
   private Settings settings;
   private DefaultResourcePermissions permissions;
 
+  @Rule
+  public ExpectedException throwable = ExpectedException.none();
+
   @Before
   public void initResourcePermissions() {
     settings = new Settings();
@@ -159,4 +164,11 @@ public class DefaultResourcePermissionsTest extends AbstractDaoTestCase {
     // does not exist
     assertThat(permissions.hasRoles(new Project("not_found"))).isFalse();
   }
+
+  @Test
+  public void should_fail_when_no_default_template_is_defined() throws Exception {
+    throwable.expect(IllegalStateException.class);
+
+    permissions.grantDefaultRoles(project);
+  }
 }
index 2b392f97b078c3d2220a3ef7fecfc75ad2660b32..20cd6888bcbceff5eafedc42f6433234880f30ab 100644 (file)
@@ -52,14 +52,18 @@ public class PermissionTemplate {
     }
     PermissionTemplate permissionTemplate =
       new PermissionTemplate(permissionTemplateDto.getId(), permissionTemplateDto.getName(), permissionTemplateDto.getDescription());
-    if(permissionTemplateDto.getUsersPermissions() != null) {
-      for (PermissionTemplateUserDto userPermission : permissionTemplateDto.getUsersPermissions()) {
+
+    List<PermissionTemplateUserDto> usersPermissions = permissionTemplateDto.getUsersPermissions();
+    if(usersPermissions != null) {
+      for (PermissionTemplateUserDto userPermission : usersPermissions) {
         permissionTemplate.registerUserPermission(permissionTemplateDto.getId(), userPermission.getUserId(),
           userPermission.getUserName(), userPermission.getUserLogin(), userPermission.getPermission());
       }
     }
-    if(permissionTemplateDto.getGroupsPermissions() != null) {
-      for (PermissionTemplateGroupDto groupPermission : permissionTemplateDto.getGroupsPermissions()) {
+
+    List<PermissionTemplateGroupDto> groupsPermissions = permissionTemplateDto.getGroupsPermissions();
+    if(groupsPermissions != null) {
+      for (PermissionTemplateGroupDto groupPermission : groupsPermissions) {
         permissionTemplate.registerGroupPermission(groupPermission.getPermission(), permissionTemplateDto.getId(),
           groupPermission.getGroupId(), groupPermission.getGroupName());
       }