aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-10-09 17:08:34 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-10-10 08:39:49 +0200
commita2e88db394ecb5ceba9c01e87612de7e2c5e5cf1 (patch)
tree30cd2f8045c0e92a76311d089e03ede71f3575aa
parent7534b360dac6e9e139bd148613fe6a9930dfffa4 (diff)
downloadsonarqube-a2e88db394ecb5ceba9c01e87612de7e2c5e5cf1.tar.gz
sonarqube-a2e88db394ecb5ceba9c01e87612de7e2c5e5cf1.zip
SONAR-5612 Do not return disabled users on the permission template users list
-rw-r--r--sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml1
-rw-r--r--sonar-core/src/test/java/org/sonar/core/permission/UserWithPermissionTemplateDaoTest.java21
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml14
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions.xml6
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml6
5 files changed, 42 insertions, 6 deletions
diff --git a/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml b/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
index 64fb208e8e9..c153b3564fd 100644
--- a/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
+++ b/sonar-core/src/main/resources/org/sonar/core/permission/PermissionTemplateMapper.xml
@@ -73,6 +73,7 @@
AND ptu.permission_reference=#{query.permission}
AND ptu.template_id=#{templateId}
<where>
+ u.active = ${_true}
<choose>
<when test="query.membership() == 'IN'">
AND ptu.permission_reference IS NOT NULL
diff --git a/sonar-core/src/test/java/org/sonar/core/permission/UserWithPermissionTemplateDaoTest.java b/sonar-core/src/test/java/org/sonar/core/permission/UserWithPermissionTemplateDaoTest.java
index ed0dc5358fb..e0f0aea1167 100644
--- a/sonar-core/src/test/java/org/sonar/core/permission/UserWithPermissionTemplateDaoTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/permission/UserWithPermissionTemplateDaoTest.java
@@ -20,11 +20,15 @@
package org.sonar.core.permission;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
import org.junit.Before;
import org.junit.Test;
import org.sonar.api.utils.System2;
import org.sonar.core.persistence.AbstractDaoTestCase;
+import javax.annotation.Nullable;
+
import java.util.List;
import static org.fest.assertions.Assertions.assertThat;
@@ -99,6 +103,23 @@ public class UserWithPermissionTemplateDaoTest extends AbstractDaoTestCase {
}
@Test
+ public void select_only_enable_users() throws Exception {
+ setupData("select_only_enable_users");
+
+ PermissionQuery query = PermissionQuery.builder().permission("user").build();
+ List<UserWithPermissionDto> result = dao.selectUsers(query, 999L);
+ assertThat(result).hasSize(3);
+
+ // Disabled user should not be returned
+ assertThat(Iterables.find(result, new Predicate<UserWithPermissionDto>() {
+ @Override
+ public boolean apply(@Nullable UserWithPermissionDto input) {
+ return input.getLogin().equals("disabledUser");
+ }
+ }, null)).isNull();
+ }
+
+ @Test
public void search_by_user_name() throws Exception {
setupData("users_with_permissions");
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml
new file mode 100644
index 00000000000..14833919475
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml
@@ -0,0 +1,14 @@
+<dataset>
+
+ <users id="200" login="user1" name="User1" active="[true]"/>
+ <users id="201" login="user2" name="User2" active="[true]"/>
+ <users id="202" login="user3" name="User3" active="[true]"/>
+ <users id="999" login="disabledUser" name="disabledUser" active="[false]"/>
+
+ <perm_templates_users id="1" user_id="200" permission_reference="user" template_id="50"/>
+ <perm_templates_users id="2" user_id="200" permission_reference="admin" template_id="50"/>
+ <perm_templates_users id="3" user_id="200" permission_reference="codeviewer" template_id="50"/>
+
+ <perm_templates_users id="4" user_id="201" permission_reference="user" template_id="50"/>
+
+</dataset>
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions.xml b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
index 9c9f018aa2b..e886636bd9b 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
@@ -1,8 +1,8 @@
<dataset>
- <users id="200" login="user1" name="User1"/>
- <users id="201" login="user2" name="User2"/>
- <users id="202" login="user3" name="User3"/>
+ <users id="200" login="user1" name="User1" active="[true]"/>
+ <users id="201" login="user2" name="User2" active="[true]"/>
+ <users id="202" login="user3" name="User3" active="[true]"/>
<perm_templates_users id="1" user_id="200" permission_reference="user" template_id="50"/>
<perm_templates_users id="2" user_id="200" permission_reference="admin" template_id="50"/>
diff --git a/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
index 54acdf839b2..fd8b981c203 100644
--- a/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
+++ b/sonar-core/src/test/resources/org/sonar/core/permission/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
@@ -1,8 +1,8 @@
<dataset>
- <users id="200" login="user3" name="User3"/>
- <users id="201" login="user1" name="User1"/>
- <users id="202" login="user2" name="User2"/>
+ <users id="200" login="user3" name="User3" active="[true]"/>
+ <users id="201" login="user1" name="User1" active="[true]"/>
+ <users id="202" login="user2" name="User2" active="[true]"/>
<perm_templates_users id="1" user_id="200" permission_reference="user" template_id="50"/>
<perm_templates_users id="2" user_id="200" permission_reference="admin" template_id="50"/>