aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2017-03-24 14:27:04 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2017-03-27 14:24:36 +0200
commited1aa9d75efd9a7db732de9480df24f2046f9b07 (patch)
tree3b3be8913c5a12d1f5394996cb4f68fbddabaaef /server
parent0e4739352b741c68c215886735ee3cc64b024e9d (diff)
downloadsonarqube-ed1aa9d75efd9a7db732de9480df24f2046f9b07.tar.gz
sonarqube-ed1aa9d75efd9a7db732de9480df24f2046f9b07.zip
SONAR-8997 SONAR-8998 Filter organization members when selecting users to change permissions and template permissions
Diffstat (limited to 'server')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionDao.java10
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java17
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java15
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionMapper.java7
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java4
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml4
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml3
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/DbTester.java4
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java36
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java96
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java24
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest.java51
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java3
-rw-r--r--server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml15
-rw-r--r--server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions.xml15
-rw-r--r--server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml15
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java9
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java9
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java14
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/AddUserToTemplateAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java77
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java71
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/organization/ws/AddMemberActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchMembersActionTest.java31
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java18
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java29
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java11
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java18
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java1
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java14
40 files changed, 349 insertions, 336 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
index 072743898e7..1849d8ed9bb 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
@@ -44,16 +44,16 @@ public class GroupPermissionDao implements Dao {
* The virtual group "Anyone" may be returned as the value {@link DefaultGroups#ANYONE}.
* @return group names, sorted in alphabetical order
*/
- public List<String> selectGroupNamesByQuery(DbSession dbSession, String organizationUuid, PermissionQuery query) {
- return mapper(dbSession).selectGroupNamesByQuery(organizationUuid, query, new RowBounds(query.getPageOffset(), query.getPageSize()));
+ public List<String> selectGroupNamesByQuery(DbSession dbSession, PermissionQuery query) {
+ return mapper(dbSession).selectGroupNamesByQuery(query, new RowBounds(query.getPageOffset(), query.getPageSize()));
}
/**
- * Count the number of groups returned by {@link #selectGroupNamesByQuery(DbSession, String, PermissionQuery)},
+ * Count the number of groups returned by {@link #selectGroupNamesByQuery(DbSession, PermissionQuery)},
* without applying pagination.
*/
- public int countGroupsByQuery(DbSession dbSession, String organizationUuid, PermissionQuery query) {
- return mapper(dbSession).countGroupsByQuery(organizationUuid, query);
+ public int countGroupsByQuery(DbSession dbSession, PermissionQuery query) {
+ return mapper(dbSession).countGroupsByQuery(query);
}
/**
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
index 10484b173d9..d84749a585d 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
@@ -28,10 +28,9 @@ import org.apache.ibatis.session.RowBounds;
public interface GroupPermissionMapper {
- List<String> selectGroupNamesByQuery(@Param("organizationUuid") String organizationUuid,
- @Param("query") PermissionQuery query, RowBounds rowBounds);
+ List<String> selectGroupNamesByQuery(@Param("query") PermissionQuery query, RowBounds rowBounds);
- int countGroupsByQuery(@Param("organizationUuid") String organizationUuid, @Param("query") PermissionQuery query);
+ int countGroupsByQuery(@Param("query") PermissionQuery query);
List<GroupPermissionDto> selectByGroupIds(@Param("organizationUuid") String organizationUuid,
@Param("groupIds") List<Integer> groupIds, @Nullable @Param("projectId") Long projectId);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java
index cc5e5af5b86..54788cecaba 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/PermissionQuery.java
@@ -27,6 +27,7 @@ import org.sonar.db.WildcardPosition;
import static com.google.common.base.MoreObjects.firstNonNull;
import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
import static org.apache.commons.lang.StringUtils.defaultIfBlank;
import static org.sonar.api.utils.Paging.offset;
import static org.sonar.db.DaoDatabaseUtils.buildLikeValue;
@@ -41,9 +42,11 @@ public class PermissionQuery {
public static final int DEFAULT_PAGE_SIZE = 20;
public static final int DEFAULT_PAGE_INDEX = 1;
+ // filter: return only the users or groups that are members of the organization
+ private final String organizationUuid;
// filter: return only the users or groups who have this permission
private final String permission;
- // filter on project, else filter global permissions
+ // filter on project, else filter org permissions
private final String componentUuid;
private final String template;
@@ -60,6 +63,7 @@ public class PermissionQuery {
private final int pageOffset;
private PermissionQuery(Builder builder) {
+ this.organizationUuid = builder.organizationUuid;
this.permission = builder.permission;
this.withAtLeastOnePermission = builder.withAtLeastOnePermission;
this.componentUuid = builder.componentUuid;
@@ -71,6 +75,10 @@ public class PermissionQuery {
this.pageOffset = offset(builder.pageIndex, builder.pageSize);
}
+ public String getOrganizationUuid() {
+ return organizationUuid;
+ }
+
@CheckForNull
public String getPermission() {
return permission;
@@ -120,6 +128,7 @@ public class PermissionQuery {
public static class Builder {
private String permission;
+ private String organizationUuid;
private String componentUuid;
private String template;
private String searchQuery;
@@ -148,6 +157,11 @@ public class PermissionQuery {
return this;
}
+ public Builder setOrganizationUuid(String organizationUuid) {
+ this.organizationUuid = organizationUuid;
+ return this;
+ }
+
public Builder setSearchQuery(@Nullable String s) {
this.searchQuery = defaultIfBlank(s, null);
return this;
@@ -169,6 +183,7 @@ public class PermissionQuery {
}
public PermissionQuery build() {
+ this.organizationUuid = requireNonNull(organizationUuid, "Organization UUID cannot be null");
this.pageIndex = firstNonNull(pageIndex, DEFAULT_PAGE_INDEX);
this.pageSize = firstNonNull(pageSize, DEFAULT_PAGE_SIZE);
checkArgument(searchQuery == null || searchQuery.length() >= SEARCH_QUERY_MIN_LENGTH, "Search query should contains at least %s characters", SEARCH_QUERY_MIN_LENGTH);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java
index 42f4886f7f4..0c3710abcbd 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java
@@ -37,12 +37,11 @@ public class UserPermissionDao implements Dao {
/**
* List of user permissions ordered by alphabetical order of user names
- *
- * @param query non-null query including optional filters.
+ * @param query non-null query including optional filters.
* @param userLogins if null, then filter on all active users. If not null, then filter on logins, including disabled users.
- * Must not be empty. If not null then maximum size is {@link org.sonar.db.DatabaseUtils#PARTITION_SIZE_FOR_ORACLE}.
+ * Must not be empty. If not null then maximum size is {@link DatabaseUtils#PARTITION_SIZE_FOR_ORACLE}.
*/
- public List<UserPermissionDto> select(DbSession dbSession, String organizationUuid, PermissionQuery query, @Nullable Collection<String> userLogins) {
+ public List<UserPermissionDto> select(DbSession dbSession, PermissionQuery query, @Nullable Collection<String> userLogins) {
if (userLogins != null) {
if (userLogins.isEmpty()) {
return emptyList();
@@ -51,15 +50,15 @@ public class UserPermissionDao implements Dao {
}
RowBounds rowBounds = new RowBounds(query.getPageOffset(), query.getPageSize());
- return mapper(dbSession).selectByQuery(organizationUuid, query, userLogins, rowBounds);
+ return mapper(dbSession).selectByQuery(query, userLogins, rowBounds);
}
/**
- * Shortcut over {@link #select(DbSession, String, PermissionQuery, Collection)} to return only distinct user
+ * Shortcut over {@link #select(DbSession, PermissionQuery, Collection)} to return only distinct user
* ids, keeping the same order.
*/
- public List<Integer> selectUserIds(DbSession dbSession, String organizationUuid, PermissionQuery query) {
- List<UserPermissionDto> dtos = select(dbSession, organizationUuid, query, null);
+ public List<Integer> selectUserIds(DbSession dbSession, PermissionQuery query) {
+ List<UserPermissionDto> dtos = select(dbSession, query, null);
return dtos.stream()
.map(UserPermissionDto::getUserId)
.distinct()
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionMapper.java
index 0e48f71f9d9..50632fc63b8 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionMapper.java
@@ -27,15 +27,14 @@ import org.apache.ibatis.session.RowBounds;
public interface UserPermissionMapper {
- List<UserPermissionDto> selectByQuery(@Param("organizationUuid") String organizationUuid,
- @Param("query") PermissionQuery query, @Nullable @Param("userLogins") Collection<String> userLogins, RowBounds rowBounds);
+ List<UserPermissionDto> selectByQuery(@Param("query") PermissionQuery query, @Nullable @Param("userLogins") Collection<String> userLogins, RowBounds rowBounds);
/**
- * Count the number of distinct users returned by {@link #selectByQuery(String, PermissionQuery, Collection, RowBounds)}
+ * Count the number of distinct users returned by {@link #selectByQuery(PermissionQuery, Collection, RowBounds)}
* {@link PermissionQuery#getPageOffset()} and {@link PermissionQuery#getPageSize()} are ignored.
*
* @param useNull must always be null. It is needed for using the sql of
- * {@link #selectByQuery(String, PermissionQuery, Collection, RowBounds)}
+ * {@link #selectByQuery(PermissionQuery, Collection, RowBounds)}
*/
int countUsersByQuery(@Param("organizationUuid") String organizationUuid, @Param("query") PermissionQuery query,
@Nullable @Param("userLogins") Collection<String> useNull);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java
index 1f01a588bd8..952e5e71c76 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateDao.java
@@ -69,8 +69,8 @@ public class PermissionTemplateDao implements Dao {
return mapper(dbSession).selectUserPermissionsByTemplateIdAndUserLogins(templateId, Collections.emptyList());
}
- public List<String> selectGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, String organizationUuid, long templateId) {
- return mapper(session).selectGroupNamesByQueryAndTemplate(organizationUuid, templateId, query, new RowBounds(query.getPageOffset(), query.getPageSize()));
+ public List<String> selectGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, long templateId) {
+ return mapper(session).selectGroupNamesByQueryAndTemplate(templateId, query, new RowBounds(query.getPageOffset(), query.getPageSize()));
}
public int countGroupNamesByQueryAndTemplate(DbSession session, PermissionQuery query, String organizationUuid, long templateId) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java
index d30f6a9b751..ad28f928212 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/permission/template/PermissionTemplateMapper.java
@@ -72,8 +72,7 @@ public interface PermissionTemplateMapper {
int countUserLoginsByQueryAndTemplate(@Param("query") PermissionQuery query, @Param("templateId") long templateId);
- List<String> selectGroupNamesByQueryAndTemplate(@Param("organizationUuid") String organizationUuid,
- @Param("templateId") long templateId, @Param("query") PermissionQuery query, RowBounds rowBounds);
+ List<String> selectGroupNamesByQueryAndTemplate(@Param("templateId") long templateId, @Param("query") PermissionQuery query, RowBounds rowBounds);
int countGroupNamesByQueryAndTemplate(@Param("organizationUuid") String organizationUuid, @Param("query") PermissionQuery query, @Param("templateId") long templateId);
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
index 9d90ac5213f..4a8d82de931 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
@@ -43,7 +43,7 @@
from groups g
left join group_roles gr on g.id = gr.group_id
where
- g.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
+ g.organization_uuid = #{query.organizationUuid,jdbcType=VARCHAR}
union all
@@ -51,7 +51,7 @@
from group_roles gr
<if test="query.withAtLeastOnePermission()">
where
- gr.organization_uuid = #{organizationUuid,jdbcType=VARCHAR} and
+ gr.organization_uuid = #{query.organizationUuid,jdbcType=VARCHAR} and
gr.group_id is null
</if>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml
index c61f730a967..3d6eafb0bf1 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml
@@ -22,6 +22,7 @@
from users u
left join user_roles ur on ur.user_id = u.id
left join projects p on ur.resource_id = p.id
+ inner join organization_members om on u.id=om.user_id and om.organization_uuid=#{query.organizationUuid,jdbcType=VARCHAR}
<where>
<if test="userLogins == null">
and u.active = ${_true}
@@ -38,7 +39,7 @@
</if>
<!-- filter rows with user permissions -->
<if test="query.withAtLeastOnePermission()">
- and ur.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
+ and ur.organization_uuid = #{query.organizationUuid,jdbcType=VARCHAR}
and ur.role is not null
<if test="query.componentUuid==null">
and ur.resource_id is null
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml
index a43ba59614b..4847bd056a5 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/permission/template/PermissionTemplateMapper.xml
@@ -135,6 +135,7 @@
<sql id="userLoginsByQueryAndTemplate">
FROM users u
LEFT JOIN perm_templates_users ptu ON ptu.user_id=u.id AND ptu.template_id=#{templateId}
+ INNER JOIN organization_members om ON u.id=om.user_id AND om.organization_uuid=#{query.organizationUuid}
<where>
u.active = ${_true}
<if test="query.getSearchQueryToSql() != null">
@@ -173,7 +174,7 @@
LEFT JOIN perm_templates_groups ptg ON
ptg.group_id=g.id
where
- g.organization_uuid=#{organizationUuid,jdbcType=VARCHAR}
+ g.organization_uuid=#{query.organizationUuid,jdbcType=VARCHAR}
UNION ALL
SELECT
0 AS group_id,
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/DbTester.java b/server/sonar-db-dao/src/test/java/org/sonar/db/DbTester.java
index 1f1d72a3737..16a07f06977 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/DbTester.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/DbTester.java
@@ -158,6 +158,10 @@ public class DbTester extends AbstractDbTester<TestDb> {
}
}
+ public boolean hasDefaultOrganization() {
+ return defaultOrganization != null;
+ }
+
public OrganizationDto getDefaultOrganization() {
checkState(defaultOrganization != null, "Default organization has not been created");
return defaultOrganization;
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
index 63231c85b49..deaf9a9d4b0 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
@@ -103,7 +103,7 @@ public class GroupPermissionDaoTest {
GroupDto group1 = db.users().insertGroup(organizationDto, "Group-1");
db.users().insertPermissionOnAnyone(organizationDto, SCAN);
- assertThat(underTest.selectGroupNamesByQuery(dbSession, organizationDto.getUuid(), PermissionQuery.builder().build()))
+ assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().setOrganizationUuid(organizationDto.getUuid()).build()))
.containsExactly(ANYONE, group1.getName(), group2.getName(), group3.getName());
}
@@ -117,15 +117,15 @@ public class GroupPermissionDaoTest {
db.users().insertPermissionOnGroup(group1, PROVISION_PROJECTS);
assertThat(underTest.countGroupsByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().build())).isEqualTo(4);
+ newQuery().build())).isEqualTo(4);
assertThat(underTest.countGroupsByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().setPermission(PROVISION_PROJECTS.getKey()).build())).isEqualTo(1);
+ newQuery().setPermission(PROVISION_PROJECTS.getKey()).build())).isEqualTo(1);
assertThat(underTest.countGroupsByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().withAtLeastOnePermission().build())).isEqualTo(2);
+ newQuery().withAtLeastOnePermission().build())).isEqualTo(2);
assertThat(underTest.countGroupsByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().setSearchQuery("Group-").build())).isEqualTo(3);
+ newQuery().setSearchQuery("Group-").build())).isEqualTo(3);
assertThat(underTest.countGroupsByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().setSearchQuery("Any").build())).isEqualTo(1);
+ newQuery().setSearchQuery("Any").build())).isEqualTo(1);
}
@Test
@@ -144,13 +144,13 @@ public class GroupPermissionDaoTest {
db.users().insertProjectPermissionOnGroup(group2, UserRole.ADMIN, project);
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- organizationDto.getUuid(), PermissionQuery.builder().setPermission(SCAN.getKey()).build())).containsExactly(ANYONE, group1.getName());
+ newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(SCAN.getKey()).build())).containsExactly(ANYONE, group1.getName());
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- organizationDto.getUuid(), PermissionQuery.builder().setPermission(ADMINISTER.getKey()).build())).containsExactly(group3.getName());
+ newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(ADMINISTER.getKey()).build())).containsExactly(group3.getName());
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- organizationDto.getUuid(), PermissionQuery.builder().setPermission(PROVISION_PROJECTS.getKey()).build())).containsExactly(ANYONE);
+ newQuery().setOrganizationUuid(organizationDto.getUuid()).setPermission(PROVISION_PROJECTS.getKey()).build())).containsExactly(ANYONE);
}
@Test
@@ -171,13 +171,13 @@ public class GroupPermissionDaoTest {
db.users().insertProjectPermissionOnGroup(group3, SCAN_EXECUTION, anotherProject);
db.users().insertPermissionOnGroup(group2, SCAN);
- PermissionQuery.Builder builderOnComponent = PermissionQuery.builder().setComponentUuid(project.uuid());
+ PermissionQuery.Builder builderOnComponent = newQuery().setComponentUuid(project.uuid());
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, builderOnComponent.withAtLeastOnePermission().build())).containsOnlyOnce(group1.getName());
+ builderOnComponent.withAtLeastOnePermission().build())).containsOnlyOnce(group1.getName());
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, builderOnComponent.setPermission(SCAN_EXECUTION).build())).containsOnlyOnce(group1.getName());
+ builderOnComponent.setPermission(SCAN_EXECUTION).build())).containsOnlyOnce(group1.getName());
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, builderOnComponent.setPermission(USER).build())).containsOnlyOnce(ANYONE);
+ builderOnComponent.setPermission(USER).build())).containsOnlyOnce(ANYONE);
}
@Test
@@ -185,7 +185,7 @@ public class GroupPermissionDaoTest {
IntStream.rangeClosed(0, 9).forEach(i -> db.users().insertGroup(db.getDefaultOrganization(), i + "-name"));
List<String> groupNames = underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().setPageIndex(2).setPageSize(3).build());
+ newQuery().setPageIndex(2).setPageSize(3).build());
assertThat(groupNames).containsExactly("3-name", "4-name", "5-name");
}
@@ -196,7 +196,7 @@ public class GroupPermissionDaoTest {
db.users().insertPermissionOnGroup(group, SCAN);
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().setSearchQuery("any").build())).containsOnlyOnce(ANYONE, group.getName());
+ newQuery().setSearchQuery("any").build())).containsOnlyOnce(ANYONE, group.getName());
}
@Test
@@ -204,7 +204,7 @@ public class GroupPermissionDaoTest {
GroupDto group = db.users().insertGroup();
assertThat(underTest.selectGroupNamesByQuery(dbSession,
- defaultOrganizationUuid, PermissionQuery.builder().build()))
+ newQuery().build()))
.doesNotContain(ANYONE)
.containsExactly(group.getName());
}
@@ -461,6 +461,10 @@ public class GroupPermissionDaoTest {
verifyOrganizationUuidsInTable();
}
+ private PermissionQuery.Builder newQuery() {
+ return PermissionQuery.builder().setOrganizationUuid(db.getDefaultOrganization().getUuid());
+ }
+
private void verifyOrganizationUuidsInTable(String... organizationUuids) {
assertThat(db.select("select distinct organization_uuid as \"organizationUuid\" from group_roles"))
.extracting((row) -> (String) row.get("organizationUuid"))
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java
index cac3651c77a..75e2be8ebc1 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java
@@ -68,7 +68,9 @@ public class UserPermissionDaoTest {
organizationDto = dbTester.organizations().insert();
project1 = dbTester.components().insertProject(organizationDto);
project2 = dbTester.components().insertProject(organizationDto);
- dbTester.commit();
+ dbTester.organizations().addMember(organizationDto, user1);
+ dbTester.organizations().addMember(organizationDto, user2);
+ dbTester.organizations().addMember(organizationDto, user3);
}
@Test
@@ -81,70 +83,72 @@ public class UserPermissionDaoTest {
// permissions on another organization, to be excluded
UserPermissionDto org2Global1 = addGlobalPermission(org2, SYSTEM_ADMIN, user1);
UserPermissionDto org2Global2 = addGlobalPermission(org2, PROVISIONING, user2);
+ dbTester.organizations().addMember(org2, user1);
+ dbTester.organizations().addMember(org2, user2);
// global permissions of users who has at least one global permission, ordered by user name then permission
- PermissionQuery query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, null, global2, global3, global1);
// default query returns all users, whatever their permissions nor organizations
// (that's a non-sense, but still this is required for api/permissions/groups
// when filtering users by name)
- query = PermissionQuery.builder().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).build();
expectPermissions(organizationDto, query, null, global2, global3, org2Global2, global1, org2Global1, project1Perm);
// return empty list if non-null but empty logins
expectPermissions(organizationDto, query, Collections.emptyList());
// global permissions of user1
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList(user1.getLogin()), global1);
// global permissions of user2
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList(user2.getLogin()), global2, global3);
// global permissions of user1, user2 and another one
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList(user1.getLogin(), user2.getLogin(), "missing"), global2, global3, global1);
// empty global permissions if login does not exist
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList("missing"));
// empty global permissions if user does not have any
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList(user3.getLogin()));
// user3 has no global permissions
- query = PermissionQuery.builder().withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, asList(user3.getLogin()));
// global permissions "admin"
- query = PermissionQuery.builder().setPermission(SYSTEM_ADMIN).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setPermission(SYSTEM_ADMIN).build();
expectPermissions(organizationDto, query, null, global2, global1);
// empty if nobody has the specified global permission
- query = PermissionQuery.builder().setPermission("missing").build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setPermission("missing").build();
expectPermissions(organizationDto, query, null);
// search by user name (matches 2 users)
- query = PermissionQuery.builder().withAtLeastOnePermission().setSearchQuery("mari").build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setSearchQuery("mari").build();
expectPermissions(organizationDto, query, null, global2, global3, global1);
// search by user login
- query = PermissionQuery.builder().withAtLeastOnePermission().setSearchQuery("ogin2").build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setSearchQuery("ogin2").build();
expectPermissions(organizationDto, query, null, global2, global3);
// search by user email
- query = PermissionQuery.builder().withAtLeastOnePermission().setSearchQuery("mail2").build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setSearchQuery("mail2").build();
expectPermissions(organizationDto, query, null, global2, global3);
// search by user name (matches 2 users) and global permission
- query = PermissionQuery.builder().setSearchQuery("Mari").setPermission(PROVISIONING).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setSearchQuery("Mari").setPermission(PROVISIONING).build();
expectPermissions(organizationDto, query, null, global3);
// search by user name (no match)
- query = PermissionQuery.builder().setSearchQuery("Unknown").build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setSearchQuery("Unknown").build();
expectPermissions(organizationDto, query, null);
}
@@ -157,47 +161,47 @@ public class UserPermissionDaoTest {
addProjectPermission(organizationDto, ISSUE_ADMIN, user3, project2);
// project permissions of users who has at least one permission on this project
- PermissionQuery query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, null, perm3, perm2, perm1);
// project permissions of user1
- query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, asList(user1.getLogin()), perm2, perm1);
// project permissions of user2
- query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, asList(user2.getLogin()), perm3);
// project permissions of user2 and another one
- query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, asList(user2.getLogin(), "missing"), perm3);
// empty project permissions if login does not exist
- query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, asList("missing"));
// empty project permissions if user does not have any
- query = PermissionQuery.builder().withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, asList(user3.getLogin()));
// empty if nobody has the specified global permission
- query = PermissionQuery.builder().setPermission("missing").setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setPermission("missing").setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, null);
// search by user name (matches 2 users), users with at least one permission
- query = PermissionQuery.builder().setSearchQuery("Mari").withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setSearchQuery("Mari").withAtLeastOnePermission().setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, null, perm3, perm2, perm1);
// search by user name (matches 2 users) and project permission
- query = PermissionQuery.builder().setSearchQuery("Mari").setPermission(ISSUE_ADMIN).setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setSearchQuery("Mari").setPermission(ISSUE_ADMIN).setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, null, perm3, perm2);
// search by user name (no match)
- query = PermissionQuery.builder().setSearchQuery("Unknown").setComponentUuid(project1.uuid()).build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setSearchQuery("Unknown").setComponentUuid(project1.uuid()).build();
expectPermissions(organizationDto, query, null);
// permissions of unknown project
- query = PermissionQuery.builder().setComponentUuid("missing").withAtLeastOnePermission().build();
+ query = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setComponentUuid("missing").withAtLeastOnePermission().build();
expectPermissions(organizationDto, query, null);
}
@@ -237,30 +241,36 @@ public class UserPermissionDaoTest {
addProjectPermission(org1, ISSUE_ADMIN, user2, project1);
addProjectPermission(org2, ISSUE_ADMIN, user2, project2);
+ addOrganizationMember(org1, user1);
+ addOrganizationMember(org1, user2);
+ addOrganizationMember(org2, user1);
+ addOrganizationMember(org2, user2);
+
// logins are ordered by user name: user2 ("Marie") then user1 ("Marius")
- PermissionQuery query = PermissionQuery.builder().setComponentUuid(project1.uuid()).withAtLeastOnePermission().build();
- assertThat(underTest.selectUserIds(dbSession, org1.getUuid(), query)).containsExactly(user2.getId(), user1.getId());
- assertThat(underTest.selectUserIds(dbSession, "otherOrg", query)).isEmpty();
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project1.getOrganizationUuid()).setComponentUuid(project1.uuid()).withAtLeastOnePermission().build();
+ assertThat(underTest.selectUserIds(dbSession, query)).containsExactly(user2.getId(), user1.getId());
+ query = PermissionQuery.builder().setOrganizationUuid("anotherOrg").setComponentUuid(project1.uuid()).withAtLeastOnePermission().build();
+ assertThat(underTest.selectUserIds(dbSession, query)).isEmpty();
// on a project without permissions
- query = PermissionQuery.builder().setComponentUuid("missing").withAtLeastOnePermission().build();
- assertThat(underTest.selectUserIds(dbSession, org1.getUuid(), query)).isEmpty();
+ query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setComponentUuid("missing").withAtLeastOnePermission().build();
+ assertThat(underTest.selectUserIds(dbSession, query)).isEmpty();
// search all users whose name matches "mar", whatever the permissions
- query = PermissionQuery.builder().setSearchQuery("mar").build();
- assertThat(underTest.selectUserIds(dbSession, org1.getUuid(), query)).containsExactly(user2.getId(), user1.getId());
+ query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mar").build();
+ assertThat(underTest.selectUserIds(dbSession, query)).containsExactly(user2.getId(), user1.getId());
// search all users whose name matches "mariu", whatever the permissions
- query = PermissionQuery.builder().setSearchQuery("mariu").build();
- assertThat(underTest.selectUserIds(dbSession, org1.getUuid(), query)).containsExactly(user1.getId());
+ query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mariu").build();
+ assertThat(underTest.selectUserIds(dbSession, query)).containsExactly(user1.getId());
// search all users whose name matches "mariu", whatever the permissions
- query = PermissionQuery.builder().setSearchQuery("mariu").setComponentUuid(project1.uuid()).build();
- assertThat(underTest.selectUserIds(dbSession, org1.getUuid(), query)).containsExactly(user1.getId());
+ query = PermissionQuery.builder().setOrganizationUuid(org1.getUuid()).setSearchQuery("mariu").setComponentUuid(project1.uuid()).build();
+ assertThat(underTest.selectUserIds(dbSession, query)).containsExactly(user1.getId());
// search all users whose name matches "mariu", whatever the organization
- query = PermissionQuery.builder().setSearchQuery("mariu").build();
- assertThat(underTest.selectUserIds(dbSession, "missingOrg", query)).containsExactly(user1.getId());
+ query = PermissionQuery.builder().setOrganizationUuid("missingOrg").setSearchQuery("mariu").build();
+ assertThat(underTest.selectUserIds(dbSession, query)).isEmpty();
}
@Test
@@ -444,7 +454,7 @@ public class UserPermissionDaoTest {
private void expectPermissions(OrganizationDto org, PermissionQuery query, @Nullable Collection<String> logins, UserPermissionDto... expected) {
// test method "select()"
- List<UserPermissionDto> permissions = underTest.select(dbSession, org.getUuid(), query, logins);
+ List<UserPermissionDto> permissions = underTest.select(dbSession, query, logins);
assertThat(permissions).hasSize(expected.length);
for (int i = 0; i < expected.length; i++) {
UserPermissionDto got = permissions.get(i);
@@ -475,6 +485,10 @@ public class UserPermissionDaoTest {
return dto;
}
+ private void addOrganizationMember(OrganizationDto org, UserDto user) {
+ dbTester.organizations().addMember(org, user);
+ }
+
private void assertThatProjectPermissionDoesNotExist(UserDto user, String permission, ComponentDto project) {
assertThat(dbTester.countSql(dbSession, "select count(id) from user_roles where role='" + permission + "' and user_id=" + user.getId() + " and resource_id=" + project.getId()))
.isEqualTo(0);
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java
index 3c821f3c8d7..5c612964107 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/GroupWithPermissionTemplateDaoTest.java
@@ -80,7 +80,7 @@ public class GroupWithPermissionTemplateDaoTest {
assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2"), organization, template))
.containsOnly("Group-2");
- assertThat(selectGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), organization, 123L))
+ assertThat(selectGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().build(), organization, 123L))
.isEmpty();
assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown"), organization, template))
.isEmpty();
@@ -142,23 +142,23 @@ public class GroupWithPermissionTemplateDaoTest {
permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), null, USER);
permissionTemplateDbTester.addGroupToTemplate(anotherTemplate.getId(), group1.getId(), PROVISIONING);
- assertThat(countGroupNamesByQueryAndTemplate(builder(), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()), organization, template))
.isEqualTo(4);
- assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission(), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission(), organization, template))
.isEqualTo(2);
- assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, template)).isEqualTo(1);
- assertThat(countGroupNamesByQueryAndTemplate(builder().setPermission(USER), organization, anotherTemplate))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setPermission(USER), organization, template)).isEqualTo(1);
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setPermission(USER), organization, anotherTemplate))
.isEqualTo(1);
- assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("groU"), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("groU"), organization, template))
.isEqualTo(3);
- assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("nYo"), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("nYo"), organization, template))
.isEqualTo(1);
- assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("p-2"), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("p-2"), organization, template))
.isEqualTo(1);
- assertThat(countGroupNamesByQueryAndTemplate(builder().withAtLeastOnePermission().build(), organization, 123L))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).withAtLeastOnePermission().build(), organization, 123L))
.isZero();
- assertThat(countGroupNamesByQueryAndTemplate(builder().setSearchQuery("unknown"), organization, template))
+ assertThat(countGroupNamesByQueryAndTemplate(builder().setOrganizationUuid(organization.getUuid()).setSearchQuery("unknown"), organization, template))
.isZero();
}
@@ -229,11 +229,11 @@ public class GroupWithPermissionTemplateDaoTest {
}
private List<String> selectGroupNamesByQueryAndTemplate(PermissionQuery.Builder queryBuilder, OrganizationDto organization, PermissionTemplateDto permissionTemplateDto) {
- return selectGroupNamesByQueryAndTemplate(queryBuilder.build(), organization, permissionTemplateDto.getId());
+ return selectGroupNamesByQueryAndTemplate(queryBuilder.setOrganizationUuid(organization.getUuid()).build(), organization, permissionTemplateDto.getId());
}
private List<String> selectGroupNamesByQueryAndTemplate(PermissionQuery query, OrganizationDto organization, long templateId) {
- return underTest.selectGroupNamesByQueryAndTemplate(session, query, organization.getUuid(), templateId);
+ return underTest.selectGroupNamesByQueryAndTemplate(session, query, templateId);
}
private int countGroupNamesByQueryAndTemplate(PermissionQuery.Builder queryBuilder, OrganizationDto organization, PermissionTemplateDto permissionTemplateDto) {
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest.java
index 8f5097ef255..1a1923aa5c2 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest.java
@@ -27,6 +27,7 @@ import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
+import org.sonar.db.permission.PermissionQuery;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
@@ -41,16 +42,16 @@ public class UserWithPermissionTemplateDaoTest {
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
- DbSession dbSession = dbTester.getSession();
+ private DbSession dbSession = dbTester.getSession();
- PermissionTemplateDao dao = dbTester.getDbClient().permissionTemplateDao();
+ private PermissionTemplateDao underTest = dbTester.getDbClient().permissionTemplateDao();
@Test
public void select_logins() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().build(), TEMPLATE_ID)).containsOnly("user1", "user2", "user3");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().withAtLeastOnePermission().setPermission("user").build(),
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().build(), TEMPLATE_ID)).containsOnly("user1", "user2", "user3");
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().withAtLeastOnePermission().setPermission("user").build(),
TEMPLATE_ID)).containsOnly("user1", "user2");
}
@@ -58,16 +59,16 @@ public class UserWithPermissionTemplateDaoTest {
public void return_no_logins_on_unknown_template_key() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().setPermission("user").withAtLeastOnePermission().build(), 999L)).isEmpty();
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().setPermission("user").withAtLeastOnePermission().build(), 999L)).isEmpty();
}
@Test
public void select_only_logins_with_permission() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(
dbSession,
- builder().setPermission("user").withAtLeastOnePermission().build(),
+ newQuery().setPermission("user").withAtLeastOnePermission().build(),
TEMPLATE_ID)).containsOnly("user1", "user2");
}
@@ -75,7 +76,7 @@ public class UserWithPermissionTemplateDaoTest {
public void select_only_enable_users() {
dbTester.prepareDbUnit(getClass(), "select_only_enable_users.xml");
- List<String> result = dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().setPermission("user").build(), TEMPLATE_ID);
+ List<String> result = underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().setPermission("user").build(), TEMPLATE_ID);
assertThat(result).hasSize(2);
// Disabled user should not be returned
@@ -86,13 +87,13 @@ public class UserWithPermissionTemplateDaoTest {
public void search_by_user_name() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- List<String> result = dao.selectUserLoginsByQueryAndTemplate(
- dbSession, builder().withAtLeastOnePermission().setPermission("user").setSearchQuery("SEr1").build(),
+ List<String> result = underTest.selectUserLoginsByQueryAndTemplate(
+ dbSession, newQuery().withAtLeastOnePermission().setPermission("user").setSearchQuery("SEr1").build(),
TEMPLATE_ID);
assertThat(result).containsOnly("user1");
- result = dao.selectUserLoginsByQueryAndTemplate(
- dbSession, builder().withAtLeastOnePermission().setPermission("user").setSearchQuery("user").build(),
+ result = underTest.selectUserLoginsByQueryAndTemplate(
+ dbSession, newQuery().withAtLeastOnePermission().setPermission("user").setSearchQuery("user").build(),
TEMPLATE_ID);
assertThat(result).hasSize(2);
}
@@ -101,31 +102,31 @@ public class UserWithPermissionTemplateDaoTest {
public void should_be_sorted_by_user_name() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions_should_be_sorted_by_user_name.xml");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().build(), TEMPLATE_ID)).containsOnly("user1", "user2", "user3");
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().build(), TEMPLATE_ID)).containsOnly("user1", "user2", "user3");
}
@Test
public void should_be_paginated() {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().setPageIndex(1).setPageSize(2).build(), TEMPLATE_ID)).containsOnly("user1", "user2");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().setPageIndex(2).setPageSize(2).build(), TEMPLATE_ID)).containsOnly("user3");
- assertThat(dao.selectUserLoginsByQueryAndTemplate(dbSession, builder().setPageIndex(3).setPageSize(1).build(), TEMPLATE_ID)).containsOnly("user3");
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().setPageIndex(1).setPageSize(2).build(), TEMPLATE_ID)).containsOnly("user1", "user2");
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().setPageIndex(2).setPageSize(2).build(), TEMPLATE_ID)).containsOnly("user3");
+ assertThat(underTest.selectUserLoginsByQueryAndTemplate(dbSession, newQuery().setPageIndex(3).setPageSize(1).build(), TEMPLATE_ID)).containsOnly("user3");
}
@Test
public void count_users() throws Exception {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.countUserLoginsByQueryAndTemplate(dbSession, builder().build(), TEMPLATE_ID)).isEqualTo(3);
- assertThat(dao.countUserLoginsByQueryAndTemplate(dbSession, builder().withAtLeastOnePermission().setPermission("user").build(), TEMPLATE_ID)).isEqualTo(2);
+ assertThat(underTest.countUserLoginsByQueryAndTemplate(dbSession, newQuery().build(), TEMPLATE_ID)).isEqualTo(3);
+ assertThat(underTest.countUserLoginsByQueryAndTemplate(dbSession, newQuery().withAtLeastOnePermission().setPermission("user").build(), TEMPLATE_ID)).isEqualTo(2);
}
@Test
public void select_user_permission_templates_by_template_and_logins() throws Exception {
dbTester.prepareDbUnit(getClass(), "users_with_permissions.xml");
- assertThat(dao.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, singletonList("user1")))
+ assertThat(underTest.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, singletonList("user1")))
.extracting(PermissionTemplateUserDto::getUserLogin, PermissionTemplateUserDto::getPermission)
.containsOnly(
tuple("user1", UserRole.USER),
@@ -133,7 +134,7 @@ public class UserWithPermissionTemplateDaoTest {
tuple("user1", UserRole.CODEVIEWER)
);
- assertThat(dao.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, asList("user1", "user2", "user3")))
+ assertThat(underTest.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, asList("user1", "user2", "user3")))
.extracting(PermissionTemplateUserDto::getUserLogin, PermissionTemplateUserDto::getPermission)
.containsOnly(
tuple("user1", UserRole.USER),
@@ -142,8 +143,12 @@ public class UserWithPermissionTemplateDaoTest {
tuple("user2", UserRole.USER)
);
- assertThat(dao.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, singletonList("unknown"))).isEmpty();
- assertThat(dao.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, Collections.emptyList())).isEmpty();
- assertThat(dao.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 123L, singletonList("user1"))).isEmpty();
+ assertThat(underTest.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, singletonList("unknown"))).isEmpty();
+ assertThat(underTest.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 50L, Collections.emptyList())).isEmpty();
+ assertThat(underTest.selectUserPermissionsByTemplateIdAndUserLogins(dbSession, 123L, singletonList("user1"))).isEmpty();
+ }
+
+ private PermissionQuery.Builder newQuery() {
+ return builder().setOrganizationUuid("ORG_UUID");
}
}
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java
index c500bd4cdc2..c82bcdac7de 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java
@@ -67,6 +67,9 @@ public class UserDbTester {
public UserDto insertUser(UserDto userDto) {
UserDto updatedUser = dbClient.userDao().insert(db.getSession(), userDto);
+ if (db.hasDefaultOrganization() && userDto.isActive()) {
+ db.organizations().addMember(db.getDefaultOrganization(), updatedUser);
+ }
db.commit();
return updatedUser;
}
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml
index 07574c24e02..9ad332d06d7 100644
--- a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml
+++ b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/select_only_enable_users.xml
@@ -21,6 +21,21 @@
active="[false]"
is_root="[false]"/>
+ <organization_members
+ user_id="200"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="201"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="202"
+ organization_uuid="ORG_UUID"
+ />
+
<perm_templates_users id="1"
user_id="200"
permission_reference="user"
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
index 528d308bd52..0339e3dbd55 100644
--- a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
+++ b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions.xml
@@ -16,6 +16,21 @@
active="[true]"
is_root="[false]"/>
+ <organization_members
+ user_id="200"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="201"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="202"
+ organization_uuid="ORG_UUID"
+ />
+
<perm_templates_users id="1"
user_id="200"
permission_reference="user"
diff --git a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
index ba020005237..13a3f1f3e0a 100644
--- a/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
+++ b/server/sonar-db-dao/src/test/resources/org/sonar/db/permission/template/UserWithPermissionTemplateDaoTest/users_with_permissions_should_be_sorted_by_user_name.xml
@@ -16,6 +16,21 @@
active="[true]"
is_root="[false]"/>
+ <organization_members
+ user_id="200"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="201"
+ organization_uuid="ORG_UUID"
+ />
+
+ <organization_members
+ user_id="202"
+ organization_uuid="ORG_UUID"
+ />
+
<perm_templates_users id="1"
user_id="200"
permission_reference="user"
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
index b3779d65cc6..e1d0db778db 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
@@ -98,10 +98,10 @@ public class GroupsAction implements PermissionsWsAction {
Optional<ProjectId> projectId = support.findProjectId(dbSession, request);
checkProjectAdmin(userSession, org.getUuid(), projectId);
- PermissionQuery query = buildPermissionQuery(request, projectId);
+ PermissionQuery query = buildPermissionQuery(request, org, projectId);
// TODO validatePermission(groupsRequest.getPermission(), wsProjectRef);
List<GroupDto> groups = findGroups(dbSession, org, query);
- int total = dbClient.groupPermissionDao().countGroupsByQuery(dbSession, org.getUuid(), query);
+ int total = dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query);
List<GroupPermissionDto> groupsWithPermission = findGroupPermissions(dbSession, org, groups, projectId);
Paging paging = Paging.forPageIndex(request.mandatoryParamAsInt(Param.PAGE)).withPageSize(query.getPageSize()).andTotal(total);
WsGroupsResponse groupsResponse = buildResponse(groups, groupsWithPermission, paging);
@@ -109,9 +109,10 @@ public class GroupsAction implements PermissionsWsAction {
}
}
- private static PermissionQuery buildPermissionQuery(Request request, Optional<ProjectId> project) {
+ private static PermissionQuery buildPermissionQuery(Request request, OrganizationDto org, Optional<ProjectId> project) {
String textQuery = request.param(Param.TEXT_QUERY);
PermissionQuery.Builder permissionQuery = PermissionQuery.builder()
+ .setOrganizationUuid(org.getUuid())
.setPermission(request.param(PARAM_PERMISSION))
.setPageIndex(request.mandatoryParamAsInt(Param.PAGE))
.setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE))
@@ -149,7 +150,7 @@ public class GroupsAction implements PermissionsWsAction {
}
private List<GroupDto> findGroups(DbSession dbSession, OrganizationDto org, PermissionQuery dbQuery) {
- List<String> orderedNames = dbClient.groupPermissionDao().selectGroupNamesByQuery(dbSession, org.getUuid(), dbQuery);
+ List<String> orderedNames = dbClient.groupPermissionDao().selectGroupNamesByQuery(dbSession, dbQuery);
List<GroupDto> groups = dbClient.groupDao().selectByNames(dbSession, org.getUuid(), orderedNames);
if (orderedNames.contains(DefaultGroups.ANYONE)) {
groups.add(0, new GroupDto().setId(0).setName(DefaultGroups.ANYONE).setOrganizationUuid(org.getUuid()));
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java
index 85f964b3d7a..13b75549f99 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/SearchGlobalPermissionsAction.java
@@ -87,7 +87,7 @@ public class SearchGlobalPermissionsAction implements PermissionsWsAction {
OrganizationPermission.all()
.map(OrganizationPermission::getKey)
.forEach(permissionKey -> {
- PermissionQuery query = permissionQuery(permissionKey);
+ PermissionQuery query = permissionQuery(permissionKey, org);
response.addPermissions(
permission
.clear()
@@ -110,16 +110,17 @@ public class SearchGlobalPermissionsAction implements PermissionsWsAction {
}
private int countGroups(DbSession dbSession, OrganizationDto org, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).build();
- return dbClient.groupPermissionDao().countGroupsByQuery(dbSession, org.getUuid(), query);
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(org.getUuid()).setPermission(permission).build();
+ return dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query);
}
private int countUsers(DbSession dbSession, OrganizationDto org, PermissionQuery permissionQuery) {
return dbClient.userPermissionDao().countUsers(dbSession, org.getUuid(), permissionQuery);
}
- private static PermissionQuery permissionQuery(String permissionKey) {
+ private static PermissionQuery permissionQuery(String permissionKey, OrganizationDto org) {
return PermissionQuery.builder()
+ .setOrganizationUuid(org.getUuid())
.setPermission(permissionKey)
.withAtLeastOnePermission()
.build();
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
index 2027d8c645e..2398832dd18 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
@@ -103,8 +103,8 @@ public class UsersAction implements PermissionsWsAction {
Optional<ProjectId> projectId = support.findProjectId(dbSession, request);
checkProjectAdmin(userSession, org.getUuid(), projectId);
- PermissionQuery query = buildPermissionQuery(request, projectId);
- List<UserDto> users = findUsers(dbSession, org, query);
+ PermissionQuery query = buildPermissionQuery(request, org, projectId);
+ List<UserDto> users = findUsers(dbSession, query);
int total = dbClient.userPermissionDao().countUsers(dbSession, org.getUuid(), query);
List<UserPermissionDto> userPermissions = findUserPermissions(dbSession, org, users, projectId);
Paging paging = Paging.forPageIndex(request.mandatoryParamAsInt(Param.PAGE)).withPageSize(query.getPageSize()).andTotal(total);
@@ -113,10 +113,11 @@ public class UsersAction implements PermissionsWsAction {
}
}
- private static PermissionQuery buildPermissionQuery(Request request, Optional<ProjectId> project) {
+ private static PermissionQuery buildPermissionQuery(Request request, OrganizationDto organization, Optional<ProjectId> project) {
String textQuery = request.param(Param.TEXT_QUERY);
String permission = request.param(PARAM_PERMISSION);
PermissionQuery.Builder permissionQuery = PermissionQuery.builder()
+ .setOrganizationUuid(organization.getUuid())
.setPermission(permission)
.setPageIndex(request.mandatoryParamAsInt(Param.PAGE))
.setPageSize(request.mandatoryParamAsInt(Param.PAGE_SIZE))
@@ -160,8 +161,8 @@ public class UsersAction implements PermissionsWsAction {
return response.build();
}
- private List<UserDto> findUsers(DbSession dbSession, OrganizationDto org, PermissionQuery query) {
- List<Integer> orderedIds = dbClient.userPermissionDao().selectUserIds(dbSession, org.getUuid(), query);
+ private List<UserDto> findUsers(DbSession dbSession, PermissionQuery query) {
+ List<Integer> orderedIds = dbClient.userPermissionDao().selectUserIds(dbSession, query);
return Ordering.explicit(orderedIds).onResultOf(UserDto::getId).immutableSortedCopy(dbClient.userDao().selectByIds(dbSession, orderedIds));
}
@@ -171,9 +172,10 @@ public class UsersAction implements PermissionsWsAction {
}
List<String> logins = users.stream().map(UserDto::getLogin).collect(Collectors.toList());
PermissionQuery query = PermissionQuery.builder()
+ .setOrganizationUuid(org.getUuid())
.setComponentUuid(project.isPresent() ? project.get().getUuid() : null)
.withAtLeastOnePermission()
.build();
- return dbClient.userPermissionDao().select(dbSession, org.getUuid(), query, logins);
+ return dbClient.userPermissionDao().select(dbSession, query, logins);
}
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/AddUserToTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/AddUserToTemplateAction.java
index 3d5d87743fc..75f2b02f408 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/AddUserToTemplateAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/AddUserToTemplateAction.java
@@ -98,15 +98,15 @@ public class AddUserToTemplateAction implements PermissionsWsAction {
UserId user = wsSupport.findUser(dbSession, userLogin);
wsSupport.checkMembership(dbSession, organizationDto, user);
- if (!isUserAlreadyAdded(dbSession, template.getId(), userLogin, permission)) {
+ if (!isUserAlreadyAdded(dbSession, organizationDto, template.getId(), userLogin, permission)) {
dbClient.permissionTemplateDao().insertUserPermission(dbSession, template.getId(), user.getId(), permission);
dbSession.commit();
}
}
}
- private boolean isUserAlreadyAdded(DbSession dbSession, long templateId, String userLogin, String permission) {
- PermissionQuery permissionQuery = PermissionQuery.builder().setPermission(permission).build();
+ private boolean isUserAlreadyAdded(DbSession dbSession, OrganizationDto organizationDto, long templateId, String userLogin, String permission) {
+ PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(organizationDto.getUuid()).setPermission(permission).build();
List<String> usersWithPermission = dbClient.permissionTemplateDao().selectUserLoginsByQueryAndTemplate(dbSession, permissionQuery, templateId);
return usersWithPermission.stream().anyMatch(s -> s.equals(userLogin));
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
index ca6c180a9f5..f10ba0fa49a 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
@@ -65,42 +65,6 @@ public class TemplateGroupsAction implements PermissionsWsAction {
this.support = support;
}
- private static PermissionQuery buildPermissionQuery(Request request) {
- String textQuery = request.param(TEXT_QUERY);
- String permission = request.param(PARAM_PERMISSION);
- PermissionQuery.Builder permissionQuery = PermissionQuery.builder()
- .setPermission(permission != null ? validateProjectPermission(permission) : null)
- .setPageIndex(request.mandatoryParamAsInt(PAGE))
- .setPageSize(request.mandatoryParamAsInt(PAGE_SIZE))
- .setSearchQuery(textQuery);
- if (textQuery == null) {
- permissionQuery.withAtLeastOnePermission();
- }
- return permissionQuery.build();
- }
-
- private static WsPermissions.WsGroupsResponse buildResponse(List<GroupDto> groups, List<PermissionTemplateGroupDto> groupPermissions, Paging paging) {
- Multimap<Integer, String> permissionsByGroupId = TreeMultimap.create();
- groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getPermission()));
- WsPermissions.WsGroupsResponse.Builder response = WsPermissions.WsGroupsResponse.newBuilder();
-
- groups.forEach(group -> {
- WsPermissions.Group.Builder wsGroup = response.addGroupsBuilder()
- .setName(group.getName());
- if (group.getId() != 0) {
- wsGroup.setId(String.valueOf(group.getId()));
- }
- setNullable(group.getDescription(), wsGroup::setDescription);
- wsGroup.addAllPermissions(permissionsByGroupId.get(group.getId()));
- });
-
- response.getPagingBuilder()
- .setPageIndex(paging.pageIndex())
- .setPageSize(paging.pageSize())
- .setTotal(paging.total());
- return response.build();
- }
-
@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context.createAction("template_groups")
@@ -129,7 +93,7 @@ public class TemplateGroupsAction implements PermissionsWsAction {
PermissionTemplateDto template = support.findTemplate(dbSession, templateRef);
checkGlobalAdmin(userSession, template.getOrganizationUuid());
- PermissionQuery query = buildPermissionQuery(wsRequest);
+ PermissionQuery query = buildPermissionQuery(wsRequest, template);
int total = dbClient.permissionTemplateDao().countGroupNamesByQueryAndTemplate(dbSession, query, template.getOrganizationUuid(), template.getId());
Paging paging = Paging.forPageIndex(wsRequest.mandatoryParamAsInt(PAGE)).withPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE)).andTotal(total);
List<GroupDto> groups = findGroups(dbSession, query, template);
@@ -139,8 +103,45 @@ public class TemplateGroupsAction implements PermissionsWsAction {
}
}
+ private static PermissionQuery buildPermissionQuery(Request request, PermissionTemplateDto template) {
+ String textQuery = request.param(TEXT_QUERY);
+ String permission = request.param(PARAM_PERMISSION);
+ PermissionQuery.Builder permissionQuery = PermissionQuery.builder()
+ .setOrganizationUuid(template.getOrganizationUuid())
+ .setPermission(permission != null ? validateProjectPermission(permission) : null)
+ .setPageIndex(request.mandatoryParamAsInt(PAGE))
+ .setPageSize(request.mandatoryParamAsInt(PAGE_SIZE))
+ .setSearchQuery(textQuery);
+ if (textQuery == null) {
+ permissionQuery.withAtLeastOnePermission();
+ }
+ return permissionQuery.build();
+ }
+
+ private static WsPermissions.WsGroupsResponse buildResponse(List<GroupDto> groups, List<PermissionTemplateGroupDto> groupPermissions, Paging paging) {
+ Multimap<Integer, String> permissionsByGroupId = TreeMultimap.create();
+ groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getPermission()));
+ WsPermissions.WsGroupsResponse.Builder response = WsPermissions.WsGroupsResponse.newBuilder();
+
+ groups.forEach(group -> {
+ WsPermissions.Group.Builder wsGroup = response.addGroupsBuilder()
+ .setName(group.getName());
+ if (group.getId() != 0) {
+ wsGroup.setId(String.valueOf(group.getId()));
+ }
+ setNullable(group.getDescription(), wsGroup::setDescription);
+ wsGroup.addAllPermissions(permissionsByGroupId.get(group.getId()));
+ });
+
+ response.getPagingBuilder()
+ .setPageIndex(paging.pageIndex())
+ .setPageSize(paging.pageSize())
+ .setTotal(paging.total());
+ return response.build();
+ }
+
private List<GroupDto> findGroups(DbSession dbSession, PermissionQuery dbQuery, PermissionTemplateDto template) {
- List<String> orderedNames = dbClient.permissionTemplateDao().selectGroupNamesByQueryAndTemplate(dbSession, dbQuery, template.getOrganizationUuid(), template.getId());
+ List<String> orderedNames = dbClient.permissionTemplateDao().selectGroupNamesByQueryAndTemplate(dbSession, dbQuery, template.getId());
List<GroupDto> groups = dbClient.groupDao().selectByNames(dbSession, template.getOrganizationUuid(), orderedNames);
if (orderedNames.contains(DefaultGroups.ANYONE)) {
groups.add(0, new GroupDto().setId(0).setName(DefaultGroups.ANYONE));
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
index 20afc876451..aadaaae16b2 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
@@ -67,41 +67,6 @@ public class TemplateUsersAction implements PermissionsWsAction {
this.support = support;
}
- private static PermissionQuery buildQuery(Request wsRequest, PermissionTemplateDto template) {
- String textQuery = wsRequest.param(TEXT_QUERY);
- String permission = wsRequest.param(PARAM_PERMISSION);
- PermissionQuery.Builder query = PermissionQuery.builder()
- .setTemplate(template.getUuid())
- .setPermission(permission != null ? validateProjectPermission(permission) : null)
- .setPageIndex(wsRequest.mandatoryParamAsInt(PAGE))
- .setPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE))
- .setSearchQuery(textQuery);
- if (textQuery == null) {
- query.withAtLeastOnePermission();
- }
- return query.build();
- }
-
- private static WsPermissions.UsersWsResponse buildResponse(List<UserDto> users, List<PermissionTemplateUserDto> permissionTemplateUsers, Paging paging) {
- Multimap<Integer, String> permissionsByUserId = TreeMultimap.create();
- permissionTemplateUsers.forEach(userPermission -> permissionsByUserId.put(userPermission.getUserId(), userPermission.getPermission()));
-
- UsersWsResponse.Builder responseBuilder = UsersWsResponse.newBuilder();
- users.forEach(user -> {
- WsPermissions.User.Builder userResponse = responseBuilder.addUsersBuilder()
- .setLogin(user.getLogin())
- .addAllPermissions(permissionsByUserId.get(user.getId()));
- setNullable(user.getEmail(), userResponse::setEmail);
- setNullable(user.getName(), userResponse::setName);
- });
- responseBuilder.getPagingBuilder()
- .setPageIndex(paging.pageIndex())
- .setPageSize(paging.pageSize())
- .setTotal(paging.total())
- .build();
- return responseBuilder.build();
- }
-
@Override
public void define(WebService.NewController context) {
WebService.NewAction action = context
@@ -141,6 +106,42 @@ public class TemplateUsersAction implements PermissionsWsAction {
}
}
+ private static PermissionQuery buildQuery(Request wsRequest, PermissionTemplateDto template) {
+ String textQuery = wsRequest.param(TEXT_QUERY);
+ String permission = wsRequest.param(PARAM_PERMISSION);
+ PermissionQuery.Builder query = PermissionQuery.builder()
+ .setOrganizationUuid(template.getOrganizationUuid())
+ .setTemplate(template.getUuid())
+ .setPermission(permission != null ? validateProjectPermission(permission) : null)
+ .setPageIndex(wsRequest.mandatoryParamAsInt(PAGE))
+ .setPageSize(wsRequest.mandatoryParamAsInt(PAGE_SIZE))
+ .setSearchQuery(textQuery);
+ if (textQuery == null) {
+ query.withAtLeastOnePermission();
+ }
+ return query.build();
+ }
+
+ private static WsPermissions.UsersWsResponse buildResponse(List<UserDto> users, List<PermissionTemplateUserDto> permissionTemplateUsers, Paging paging) {
+ Multimap<Integer, String> permissionsByUserId = TreeMultimap.create();
+ permissionTemplateUsers.forEach(userPermission -> permissionsByUserId.put(userPermission.getUserId(), userPermission.getPermission()));
+
+ UsersWsResponse.Builder responseBuilder = UsersWsResponse.newBuilder();
+ users.forEach(user -> {
+ WsPermissions.User.Builder userResponse = responseBuilder.addUsersBuilder()
+ .setLogin(user.getLogin())
+ .addAllPermissions(permissionsByUserId.get(user.getId()));
+ setNullable(user.getEmail(), userResponse::setEmail);
+ setNullable(user.getName(), userResponse::setName);
+ });
+ responseBuilder.getPagingBuilder()
+ .setPageIndex(paging.pageIndex())
+ .setPageSize(paging.pageSize())
+ .setTotal(paging.total())
+ .build();
+ return responseBuilder.build();
+ }
+
private List<UserDto> findUsers(DbSession dbSession, PermissionQuery query, PermissionTemplateDto template) {
List<String> orderedLogins = dbClient.permissionTemplateDao().selectUserLoginsByQueryAndTemplate(dbSession, query, template.getId());
return Ordering.explicit(orderedLogins).onResultOf(UserDto::getLogin).immutableSortedCopy(dbClient.userDao().selectByLogins(dbSession, orderedLogins));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
index 39132599901..8af36ab217d 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
@@ -94,7 +94,6 @@ public class AssignActionTest {
public void assign_to_someone() throws Exception {
IssueDto issue = newIssueWithBrowsePermission();
UserDto userDto = db.users().insertUser("arthur");
- addUserAsMemberOfDefaultOrganization(userDto);
ws.newRequest()
.setParam("issue", issue.getKey())
@@ -160,7 +159,6 @@ public class AssignActionTest {
public void nothing_to_do_when_new_assignee_is_same_as_old_one() throws Exception {
IssueDto issue = newIssueWithBrowsePermission();
UserDto userDto = db.users().insertUser(PREVIOUS_ASSIGNEE);
- addUserAsMemberOfDefaultOrganization(userDto);
ws.newRequest()
.setParam("issue", issue.getKey())
@@ -258,7 +256,6 @@ public class AssignActionTest {
private void setUserWithBrowsePermission(IssueDto issue) {
UserDto currentUser = db.users().insertUser(CURRENT_USER_LOGIN);
- addUserAsMemberOfDefaultOrganization(currentUser);
userSession.logIn(CURRENT_USER_LOGIN).addProjectUuidPermissions(USER, issue.getProjectUuid());
}
@@ -268,9 +265,4 @@ public class AssignActionTest {
assertThat(issueReloaded.getIssueUpdateTime()).isEqualTo(NOW);
assertThat(issueReloaded.getUpdatedAt()).isEqualTo(NOW);
}
-
- private void addUserAsMemberOfDefaultOrganization(UserDto user) {
- db.organizations().addMember(db.getDefaultOrganization(), user);
- }
-
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/AddMemberActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/AddMemberActionTest.java
index d9ae10ce569..0968faa4033 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/AddMemberActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/AddMemberActionTest.java
@@ -112,7 +112,7 @@ public class AddMemberActionTest {
assertMember(organization.getUuid(), user.getId());
List<UserDoc> userDocs = userIndex.search(UserQuery.builder().build(), new SearchOptions()).getDocs();
assertThat(userDocs).hasSize(1);
- assertThat(userDocs.get(0).organizationUuids()).containsOnly(organization.getUuid());
+ assertThat(userDocs.get(0).organizationUuids()).containsOnly(organization.getUuid(), db.getDefaultOrganization().getUuid());
}
@Test
diff --git a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchMembersActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchMembersActionTest.java
index 1c99f943686..ff194cb831b 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchMembersActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchMembersActionTest.java
@@ -88,14 +88,8 @@ public class SearchMembersActionTest {
@Test
public void search_members_of_default_organization() {
- OrganizationDto defaultOrganization = db.getDefaultOrganization();
- OrganizationDto anotherOrganization = db.organizations().insert();
UserDto user = db.users().insertUser();
UserDto anotherUser = db.users().insertUser();
- UserDto userInAnotherOrganization = db.users().insertUser();
- db.organizations().addMember(defaultOrganization, user);
- db.organizations().addMember(defaultOrganization, anotherUser);
- db.organizations().addMember(anotherOrganization, userInAnotherOrganization);
indexAllUsers();
SearchMembersWsResponse result = call();
@@ -132,7 +126,6 @@ public class SearchMembersActionTest {
@Test
public void return_avatar() {
UserDto user = db.users().insertUser(u -> u.setEmail("email@domain.com"));
- db.organizations().addMember(db.getDefaultOrganization(), user);
indexer.index(user.getLogin());
SearchMembersWsResponse result = call();
@@ -145,7 +138,6 @@ public class SearchMembersActionTest {
UserDto user = db.users().insertUser();
GroupDto group = db.users().insertGroup();
db.users().insertMember(group, user);
- db.organizations().addMember(db.getDefaultOrganization(), user);
indexAllUsers();
SearchMembersWsResponse result = call();
@@ -164,8 +156,6 @@ public class SearchMembersActionTest {
OrganizationDto anotherOrganization = db.organizations().insert();
GroupDto anotherGroup = db.users().insertGroup(anotherOrganization);
db.users().insertMember(anotherGroup, user);
- db.organizations().addMember(db.getDefaultOrganization(), user);
- db.organizations().addMember(db.getDefaultOrganization(), anotherUser);
db.organizations().addMember(anotherOrganization, user);
indexAllUsers();
@@ -178,16 +168,15 @@ public class SearchMembersActionTest {
@Test
public void search_non_members() {
- OrganizationDto defaultOrganization = db.getDefaultOrganization();
OrganizationDto anotherOrganization = db.organizations().insert();
UserDto user = db.users().insertUser();
UserDto anotherUser = db.users().insertUser();
UserDto userInAnotherOrganization = db.users().insertUser();
- db.organizations().addMember(anotherOrganization, user);
- db.organizations().addMember(anotherOrganization, anotherUser);
- db.organizations().addMember(defaultOrganization, userInAnotherOrganization);
+ db.organizations().addMember(anotherOrganization, userInAnotherOrganization);
indexAllUsers();
- request.setSelected(WebService.SelectionMode.DESELECTED.value());
+ request
+ .setOrganization(anotherOrganization.getKey())
+ .setSelected(WebService.SelectionMode.DESELECTED.value());
SearchMembersWsResponse result = call();
@@ -202,7 +191,6 @@ public class SearchMembersActionTest {
public void search_members_pagination() {
IntStream.range(0, 10).forEach(i -> {
UserDto userDto = db.users().insertUser(user -> user.setName("USER_" + i));
- db.organizations().addMember(db.getDefaultOrganization(), userDto);
indexer.index(userDto.getLogin());
});
indexAllUsers();
@@ -221,7 +209,6 @@ public class SearchMembersActionTest {
public void search_members_by_name() {
IntStream.range(0, 10).forEach(i -> {
UserDto userDto = db.users().insertUser(user -> user.setName("USER_" + i));
- db.organizations().addMember(db.getDefaultOrganization(), userDto);
indexer.index(userDto.getLogin());
});
indexAllUsers();
@@ -236,7 +223,6 @@ public class SearchMembersActionTest {
public void search_members_by_login() {
IntStream.range(0, 10).forEach(i -> {
UserDto userDto = db.users().insertUser(user -> user.setLogin("USER_" + i));
- db.organizations().addMember(db.getDefaultOrganization(), userDto);
indexer.index(userDto.getLogin());
});
indexAllUsers();
@@ -253,7 +239,6 @@ public class SearchMembersActionTest {
UserDto userDto = db.users().insertUser(user -> user
.setLogin("L" + i)
.setEmail("USER_" + i + "@email.com"));
- db.organizations().addMember(db.getDefaultOrganization(), userDto);
indexer.index(userDto.getLogin());
});
indexAllUsers();
@@ -266,12 +251,8 @@ public class SearchMembersActionTest {
@Test
public void json_example() {
- UserDto ada = db.users().insertUser(u -> u.setLogin("ada.lovelace").setName("Ada Lovelace").setEmail("ada@lovelace.com"));
- indexer.index(ada.getLogin());
- UserDto grace = db.users().insertUser(u -> u.setLogin("grace.hopper").setName("Grace Hopper").setEmail("grace@hopper.com"));
- indexer.index(grace.getLogin());
- db.organizations().addMember(db.getDefaultOrganization(), ada);
- db.organizations().addMember(db.getDefaultOrganization(), grace);
+ db.users().insertUser(u -> u.setLogin("ada.lovelace").setName("Ada Lovelace").setEmail("ada@lovelace.com"));
+ db.users().insertUser(u -> u.setLogin("grace.hopper").setName("Grace Hopper").setEmail("grace@hopper.com"));
indexAllUsers();
String result = ws.newRequest().execute().getInput();
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
index 7b5229a38b3..3ed61211d13 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
@@ -59,7 +59,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void add_permission_to_user_on_default_organization_if_organization_is_not_specified() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest()
@@ -105,7 +104,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void add_permission_to_project_referenced_by_its_key() throws Exception {
ComponentDto project = db.components().insertProject();
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest()
@@ -121,7 +119,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void add_permission_to_view() throws Exception {
ComponentDto view = db.components().insertComponent(newView(db.getDefaultOrganization(), "view-uuid").setKey("view-key"));
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest()
@@ -136,7 +133,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_project_uuid_is_unknown() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -150,7 +146,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_project_permission_without_project() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(BadRequestException.class);
@@ -163,7 +158,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_component_is_not_a_project() throws Exception {
- addUserAsMemberOfDefaultOrganization();
db.components().insertComponent(newFileDto(newProjectDto(db.organizations().insert(), "project-uuid"), null, "file-uuid"));
loginAsAdmin(db.getDefaultOrganization());
@@ -178,7 +172,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_get_request() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(ServerException.class);
@@ -192,7 +185,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_user_login_is_missing() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(IllegalArgumentException.class);
@@ -204,7 +196,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_permission_is_missing() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -216,7 +207,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void fail_when_project_uuid_and_project_key_are_provided() throws Exception {
- addUserAsMemberOfDefaultOrganization();
db.components().insertProject();
loginAsAdmin(db.getDefaultOrganization());
@@ -233,7 +223,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void adding_global_permission_fails_if_not_administrator_of_organization() throws Exception {
- addUserAsMemberOfDefaultOrganization();
userSession.logIn();
expectedException.expect(ForbiddenException.class);
@@ -246,7 +235,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void adding_project_permission_fails_if_not_administrator_of_project() throws Exception {
- addUserAsMemberOfDefaultOrganization();
ComponentDto project = db.components().insertProject();
userSession.logIn();
@@ -264,7 +252,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
*/
@Test
public void adding_project_permission_is_allowed_to_project_administrators() throws Exception {
- addUserAsMemberOfDefaultOrganization();
ComponentDto project = db.components().insertProject();
userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
@@ -280,7 +267,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
@Test
public void organization_parameter_must_not_be_set_on_project_permissions() {
- addUserAsMemberOfDefaultOrganization();
ComponentDto project = db.components().insertProject();
loginAsAdmin(db.getDefaultOrganization());
@@ -313,10 +299,6 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
.execute();
}
- private void addUserAsMemberOfDefaultOrganization() {
- db.organizations().addMember(db.getDefaultOrganization(), user);
- }
-
private void addUserAsMemberOfOrganization(OrganizationDto organization) {
db.organizations().addMember(organization, user);
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java
index 2500f7b6fc1..86f7874ebff 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java
@@ -70,6 +70,8 @@ public class SearchGlobalPermissionsActionTest extends BasePermissionWsTest<Sear
db.users().insertPermissionOnGroup(adminGroup, ADMINISTER);
UserDto user = db.users().insertUser(newUserDto("user", "user-name"));
UserDto adminUser = db.users().insertUser(newUserDto("admin", "admin-name"));
+ db.organizations().addMember(org, user);
+ db.organizations().addMember(org, adminUser);
db.users().insertPermissionOnUser(org, user, PROVISION_PROJECTS);
db.users().insertPermissionOnUser(org, user, ADMINISTER_QUALITY_PROFILES);
db.users().insertPermissionOnUser(org, adminUser, ADMINISTER_QUALITY_PROFILES);
@@ -97,6 +99,7 @@ public class SearchGlobalPermissionsActionTest extends BasePermissionWsTest<Sear
// to be ignored, by default organization is used when searching for permissions
db.users().insertPermissionOnUser(org, user, ADMINISTER_QUALITY_GATES);
+ db.organizations().addMember(org, user);
WsPermissions.WsSearchGlobalPermissionsResponse result = WsPermissions.WsSearchGlobalPermissionsResponse.parseFrom(
newRequest()
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java
index 36024a421aa..5d9735281de 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddGroupToTemplateActionTest.java
@@ -206,8 +206,8 @@ public class AddGroupToTemplateActionTest extends BasePermissionWsTest<AddGroupT
}
private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).build();
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build();
return db.getDbClient().permissionTemplateDao()
- .selectGroupNamesByQueryAndTemplate(db.getSession(), query, template.getOrganizationUuid(), template.getId());
+ .selectGroupNamesByQueryAndTemplate(db.getSession(), query, template.getId());
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java
index 2fdd1384fb6..f93f001d351 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/AddUserToTemplateActionTest.java
@@ -61,17 +61,15 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void add_user_to_template() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), permissionTemplate.getUuid(), CODEVIEWER);
- assertThat(getLoginsInTemplateAndPermission(permissionTemplate.getId(), CODEVIEWER)).containsExactly(user.getLogin());
+ assertThat(getLoginsInTemplateAndPermission(permissionTemplate, CODEVIEWER)).containsExactly(user.getLogin());
}
@Test
public void add_user_to_template_by_name() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest()
@@ -80,7 +78,7 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
.setParam(PARAM_TEMPLATE_NAME, permissionTemplate.getName().toUpperCase())
.execute();
- assertThat(getLoginsInTemplateAndPermission(permissionTemplate.getId(), CODEVIEWER)).containsExactly(user.getLogin());
+ assertThat(getLoginsInTemplateAndPermission(permissionTemplate, CODEVIEWER)).containsExactly(user.getLogin());
}
@Test
@@ -97,23 +95,21 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
.setParam(PARAM_ORGANIZATION, organizationDto.getKey())
.execute();
- assertThat(getLoginsInTemplateAndPermission(permissionTemplate.getId(), CODEVIEWER)).containsExactly(user.getLogin());
+ assertThat(getLoginsInTemplateAndPermission(permissionTemplate, CODEVIEWER)).containsExactly(user.getLogin());
}
@Test
public void does_not_add_a_user_twice() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), permissionTemplate.getUuid(), ISSUE_ADMIN);
newRequest(user.getLogin(), permissionTemplate.getUuid(), ISSUE_ADMIN);
- assertThat(getLoginsInTemplateAndPermission(permissionTemplate.getId(), ISSUE_ADMIN)).containsExactly(user.getLogin());
+ assertThat(getLoginsInTemplateAndPermission(permissionTemplate, ISSUE_ADMIN)).containsExactly(user.getLogin());
}
@Test
public void fail_if_not_a_project_permission() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(IllegalArgumentException.class);
@@ -123,7 +119,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_not_admin_of_default_organization() throws Exception {
- addUserAsMemberOfDefaultOrganization();
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization());
expectedException.expect(ForbiddenException.class);
@@ -133,7 +128,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_user_missing() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(IllegalArgumentException.class);
@@ -143,7 +137,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_permission_missing() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(IllegalArgumentException.class);
@@ -153,7 +146,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_template_uuid_and_name_are_missing() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(BadRequestException.class);
@@ -163,7 +155,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_user_does_not_exist() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -174,7 +165,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_template_key_does_not_exist() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -185,7 +175,6 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
@Test
public void fail_if_organization_does_not_exist() throws Exception {
- addUserAsMemberOfDefaultOrganization();
loginAsAdmin(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -233,14 +222,10 @@ public class AddUserToTemplateActionTest extends BasePermissionWsTest<AddUserToT
request.execute();
}
- private List<String> getLoginsInTemplateAndPermission(long templateId, String permission) {
- PermissionQuery permissionQuery = PermissionQuery.builder().setPermission(permission).build();
+ private List<String> getLoginsInTemplateAndPermission(PermissionTemplateDto template, String permission) {
+ PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build();
return db.getDbClient().permissionTemplateDao()
- .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, templateId);
- }
-
- private void addUserAsMemberOfDefaultOrganization() {
- db.organizations().addMember(db.getDefaultOrganization(), user);
+ .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, template.getId());
}
private void addUserAsMemberOfOrganization(OrganizationDto organization) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
index 20845ee1326..9f3484c8025 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
@@ -216,12 +216,12 @@ public class ApplyTemplateActionTest extends BasePermissionWsTest<ApplyTemplateA
}
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build();
- return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), db.getDefaultOrganization().getUuid(), query);
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build();
+ return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), query);
}
private List<Integer> selectProjectPermissionUsers(ComponentDto project, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build();
- return db.getDbClient().userPermissionDao().selectUserIds(db.getSession(), db.getDefaultOrganization().getUuid(), query);
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build();
+ return db.getDbClient().userPermissionDao().selectUserIds(db.getSession(), query);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java
index 4f98e2e7371..c892b6d2376 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java
@@ -76,6 +76,9 @@ public class BulkApplyTemplateActionTest extends BasePermissionWsTest<BulkApplyT
group1 = db.users().insertGroup(organization);
group2 = db.users().insertGroup(organization);
+ db.organizations().addMember(organization, user1);
+ db.organizations().addMember(organization, user2);
+
// template 1 for org 1
template1 = db.permissionTemplates().insertTemplate(organization);
addUserToTemplate(user1, template1, UserRole.CODEVIEWER);
@@ -219,12 +222,12 @@ public class BulkApplyTemplateActionTest extends BasePermissionWsTest<BulkApplyT
}
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build();
- return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), project.getOrganizationUuid(), query);
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build();
+ return db.getDbClient().groupPermissionDao().selectGroupNamesByQuery(db.getSession(), query);
}
private List<Integer> selectProjectPermissionUsers(ComponentDto project, String permission) {
- PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build();
- return db.getDbClient().userPermissionDao().selectUserIds(db.getSession(), project.getOrganizationUuid(), query);
+ PermissionQuery query = PermissionQuery.builder().setOrganizationUuid(project.getOrganizationUuid()).setPermission(permission).setComponentUuid(project.uuid()).build();
+ return db.getDbClient().userPermissionDao().selectUserIds(db.getSession(), query);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java
index 228f57307a5..44ccbf15c83 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveGroupFromTemplateActionTest.java
@@ -193,8 +193,8 @@ public class RemoveGroupFromTemplateActionTest extends BasePermissionWsTest<Remo
}
private List<String> getGroupNamesInTemplateAndPermission(PermissionTemplateDto template, String permission) {
- PermissionQuery permissionQuery = PermissionQuery.builder().setPermission(permission).build();
+ PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build();
return db.getDbClient().permissionTemplateDao()
- .selectGroupNamesByQueryAndTemplate(db.getSession(), permissionQuery, template.getOrganizationUuid(), template.getId());
+ .selectGroupNamesByQueryAndTemplate(db.getSession(), permissionQuery, template.getId());
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java
index a0f59296689..b272ccac968 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java
@@ -65,7 +65,7 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
- assertThat(getLoginsInTemplateAndPermission(template.getId(), DEFAULT_PERMISSION)).isEmpty();
+ assertThat(getLoginsInTemplateAndPermission(template, DEFAULT_PERMISSION)).isEmpty();
}
@Test
@@ -77,7 +77,7 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
.setParam(PARAM_TEMPLATE_NAME, template.getName().toUpperCase())
.execute();
- assertThat(getLoginsInTemplateAndPermission(template.getId(), DEFAULT_PERMISSION)).isEmpty();
+ assertThat(getLoginsInTemplateAndPermission(template, DEFAULT_PERMISSION)).isEmpty();
}
@Test
@@ -86,7 +86,7 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
- assertThat(getLoginsInTemplateAndPermission(template.getId(), DEFAULT_PERMISSION)).isEmpty();
+ assertThat(getLoginsInTemplateAndPermission(template, DEFAULT_PERMISSION)).isEmpty();
}
@Test
@@ -96,8 +96,8 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
- assertThat(getLoginsInTemplateAndPermission(template.getId(), DEFAULT_PERMISSION)).isEmpty();
- assertThat(getLoginsInTemplateAndPermission(template.getId(), ISSUE_ADMIN)).containsExactly(user.getLogin());
+ assertThat(getLoginsInTemplateAndPermission(template, DEFAULT_PERMISSION)).isEmpty();
+ assertThat(getLoginsInTemplateAndPermission(template, ISSUE_ADMIN)).containsExactly(user.getLogin());
}
@Test
@@ -108,7 +108,7 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
- assertThat(getLoginsInTemplateAndPermission(template.getId(), DEFAULT_PERMISSION)).containsExactly("new-login");
+ assertThat(getLoginsInTemplateAndPermission(template, DEFAULT_PERMISSION)).containsExactly("new-login");
}
@Test
@@ -200,10 +200,10 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest<Remov
request.execute();
}
- private List<String> getLoginsInTemplateAndPermission(long templateId, String permission) {
- PermissionQuery permissionQuery = PermissionQuery.builder().setPermission(permission).build();
+ private List<String> getLoginsInTemplateAndPermission(PermissionTemplateDto template, String permission) {
+ PermissionQuery permissionQuery = PermissionQuery.builder().setOrganizationUuid(template.getOrganizationUuid()).setPermission(permission).build();
return db.getDbClient().permissionTemplateDao()
- .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, templateId);
+ .selectUserLoginsByQueryAndTemplate(db.getSession(), permissionQuery, template.getId());
}
private void addUserToTemplate(UserDto user, PermissionTemplateDto template, String permission) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java
index c2271a768ca..2b6bbedf0d5 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/user/index/UserResultSetIteratorTest.java
@@ -51,7 +51,7 @@ public class UserResultSetIteratorTest {
.setScmAccounts(Arrays.asList("user,2", "user_2"))
.setCreatedAt(1_500_000_000_000L)
.setUpdatedAt(1_500_000_000_000L));
- UserDto userDto3 = db.users().insertUser(u -> u
+ UserDto inactiveUser = db.users().insertUser(u -> u
.setName("User3")
.setLogin("user3")
.setEmail(null)
@@ -78,7 +78,7 @@ public class UserResultSetIteratorTest {
assertThat(user1.scmAccounts()).containsOnly("user_1", "u1");
assertThat(user1.createdAt()).isEqualTo(1_500_000_000_000L);
assertThat(user1.updatedAt()).isEqualTo(1_500_000_000_000L);
- assertThat(user1.organizationUuids()).containsOnly("ORG_1", "ORG_2");
+ assertThat(user1.organizationUuids()).containsOnly("ORG_1", "ORG_2", db.getDefaultOrganization().getUuid());
UserDoc user2 = usersByLogin.get("user2");
assertThat(user2.name()).isEqualTo("User2");
@@ -87,7 +87,7 @@ public class UserResultSetIteratorTest {
assertThat(user2.scmAccounts()).containsOnly("user,2", "user_2");
assertThat(user2.createdAt()).isEqualTo(1_500_000_000_000L);
assertThat(user2.updatedAt()).isEqualTo(1_500_000_000_000L);
- assertThat(user2.organizationUuids()).containsOnly("ORG_1");
+ assertThat(user2.organizationUuids()).containsOnly("ORG_1", db.getDefaultOrganization().getUuid());
UserDoc user3 = usersByLogin.get("user3");
assertThat(user3.name()).isEqualTo("User3");
diff --git a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java
index 53e9b5bfffa..214c8cbc977 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/AddUserActionTest.java
@@ -62,7 +62,6 @@ public class AddUserActionTest {
public void add_user_to_group_referenced_by_its_id() throws Exception {
GroupDto group = db.users().insertGroup();
UserDto user = db.users().insertUser();
- addUserAsMemberOfDefaultOrganization(user);
loginAsAdminOnDefaultOrganization();
newRequest()
@@ -78,7 +77,6 @@ public class AddUserActionTest {
public void add_user_to_group_referenced_by_its_name() throws Exception {
GroupDto group = db.users().insertGroup();
UserDto user = db.users().insertUser();
- addUserAsMemberOfDefaultOrganization(user);
loginAsAdminOnDefaultOrganization();
newRequest()
@@ -115,7 +113,6 @@ public class AddUserActionTest {
GroupDto users = db.users().insertGroup(defaultOrg, "users");
UserDto user = db.users().insertUser("my-admin");
db.users().insertMember(users, user);
- addUserAsMemberOfDefaultOrganization(user);
loginAsAdminOnDefaultOrganization();
newRequest()
@@ -132,7 +129,6 @@ public class AddUserActionTest {
GroupDto users = db.users().insertGroup();
UserDto user = db.users().insertUser();
db.users().insertMember(users, user);
- addUserAsMemberOfDefaultOrganization(user);
loginAsAdminOnDefaultOrganization();
newRequest()
@@ -151,8 +147,6 @@ public class AddUserActionTest {
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.users().insertMember(users, user1);
- addUserAsMemberOfDefaultOrganization(user1);
- addUserAsMemberOfDefaultOrganization(user2);
loginAsAdminOnDefaultOrganization();
newRequest()
@@ -169,7 +163,6 @@ public class AddUserActionTest {
public void fail_if_group_does_not_exist() throws Exception {
UserDto user = db.users().insertUser();
loginAsAdminOnDefaultOrganization();
- addUserAsMemberOfDefaultOrganization(user);
expectedException.expect(NotFoundException.class);
@@ -196,7 +189,6 @@ public class AddUserActionTest {
public void fail_if_not_administrator() throws Exception {
GroupDto group = db.users().insertGroup();
UserDto user = db.users().insertUser();
- addUserAsMemberOfDefaultOrganization(user);
expectedException.expect(UnauthorizedException.class);
@@ -263,10 +255,6 @@ public class AddUserActionTest {
return new GroupWsSupport(db.getDbClient(), defaultOrganizationProvider);
}
- private void addUserAsMemberOfDefaultOrganization(UserDto user) {
- db.organizations().addMember(db.getDefaultOrganization(), user);
- }
-
private void addUserAsMemberOfOrganization(OrganizationDto organization, UserDto user) {
db.organizations().addMember(organization, user);
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java
index 67eee518f6a..a1b1eca0b81 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UpdateActionTest.java
@@ -75,7 +75,6 @@ public class UpdateActionTest {
GroupDto group = db.users().insertGroup();
UserDto user = db.users().insertUser();
db.users().insertMember(group, user);
- db.organizations().addMember(db.getDefaultOrganization(), user);
loginAsAdminOnDefaultOrganization();
newRequest()
diff --git a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java
index 5f3e04210b6..1441cc4636d 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/UsersActionTest.java
@@ -119,8 +119,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada.login").setName("Ada Lovelace"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()
@@ -155,8 +153,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada.login").setName("Ada Lovelace"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()
@@ -173,8 +169,6 @@ public class UsersActionTest {
UserDto graceHopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, adaLovelace);
db.users().insertMember(group, graceHopper);
- db.organizations().addMember(db.getDefaultOrganization(), adaLovelace);
- db.organizations().addMember(db.getDefaultOrganization(), graceHopper);
loginAsAdminOnDefaultOrganization();
String response = newUsersRequest().setParam(PARAM_GROUP_ID, group.getId().toString()).execute().outputAsString();
@@ -188,8 +182,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada").setName("Ada Lovelace"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()
@@ -210,8 +202,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada").setName("Ada Lovelace"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()
@@ -227,8 +217,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada").setName("Ada Lovelace"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()
@@ -253,8 +241,6 @@ public class UsersActionTest {
UserDto lovelace = db.users().insertUser(newUserDto().setLogin("ada.login").setName("Ada Lovelace").setEmail("ada@email.com"));
UserDto hopper = db.users().insertUser(newUserDto().setLogin("grace").setName("Grace Hopper").setEmail("grace@hopper.com"));
db.users().insertMember(group, lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), lovelace);
- db.organizations().addMember(db.getDefaultOrganization(), hopper);
loginAsAdminOnDefaultOrganization();
newUsersRequest()