diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-10-09 17:08:34 +0200 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2014-10-10 08:39:49 +0200 |
commit | a2e88db394ecb5ceba9c01e87612de7e2c5e5cf1 (patch) | |
tree | 30cd2f8045c0e92a76311d089e03ede71f3575aa | |
parent | 7534b360dac6e9e139bd148613fe6a9930dfffa4 (diff) | |
download | sonarqube-a2e88db394ecb5ceba9c01e87612de7e2c5e5cf1.tar.gz sonarqube-a2e88db394ecb5ceba9c01e87612de7e2c5e5cf1.zip |
SONAR-5612 Do not return disabled users on the permission template users list
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"/> |