@@ -103,7 +103,7 @@ public class GroupsAction implements PermissionsWsAction { | |||
PermissionQuery dbQuery = buildPermissionQuery(request, project); | |||
List<GroupDto> groups = findGroups(dbSession, dbQuery); | |||
int total = dbClient.permissionDao().countGroupsByPermissionQuery(dbSession, dbQuery); | |||
int total = dbClient.groupPermissionDao().countGroupsByPermissionQuery(dbSession, dbQuery); | |||
List<GroupRoleDto> groupsWithPermission = findGroupPermissions(dbSession, groups, project); | |||
return buildResponse(groups, groupsWithPermission, Paging.forPageIndex(request.getPage()).withPageSize(request.getPageSize()).andTotal(total)); | |||
} finally { | |||
@@ -166,7 +166,7 @@ public class GroupsAction implements PermissionsWsAction { | |||
} | |||
private List<GroupDto> findGroups(DbSession dbSession, PermissionQuery dbQuery) { | |||
List<String> orderedNames = dbClient.permissionDao().selectGroupNamesByPermissionQuery(dbSession, dbQuery); | |||
List<String> orderedNames = dbClient.groupPermissionDao().selectGroupNamesByPermissionQuery(dbSession, dbQuery); | |||
List<GroupDto> groups = dbClient.groupDao().selectByNames(dbSession, orderedNames); | |||
if (orderedNames.contains(DefaultGroups.ANYONE)) { | |||
groups.add(0, new GroupDto().setId(0L).setName(DefaultGroups.ANYONE)); | |||
@@ -179,6 +179,6 @@ public class GroupsAction implements PermissionsWsAction { | |||
return emptyList(); | |||
} | |||
List<String> names = groups.stream().map(GroupDto::getName).collect(Collectors.toList()); | |||
return dbClient.permissionDao().selectGroupPermissionsByGroupNamesAndProject(dbSession, names, project.isPresent() ? project.get().getId() : null); | |||
return dbClient.groupPermissionDao().selectGroupPermissionsByGroupNamesAndProject(dbSession, names, project.isPresent() ? project.get().getId() : null); | |||
} | |||
} |
@@ -102,7 +102,7 @@ public class SearchGlobalPermissionsAction implements PermissionsWsAction { | |||
} | |||
private int countGroups(DbSession dbSession, String permissionKey) { | |||
return dbClient.permissionDao().countGroups(dbSession, permissionKey, null); | |||
return dbClient.groupPermissionDao().countGroups(dbSession, permissionKey, null); | |||
} | |||
private int countUsers(DbSession dbSession, PermissionQuery permissionQuery) { |
@@ -116,7 +116,7 @@ public class SearchProjectPermissionsDataLoader { | |||
private Table<Long, String, Integer> groupCountByRootComponentIdAndPermission(DbSession dbSession, List<Long> rootComponentIds) { | |||
final Table<Long, String, Integer> userCountByRootComponentIdAndPermission = TreeBasedTable.create(); | |||
dbClient.permissionDao().groupsCountByComponentIdAndPermission(dbSession, rootComponentIds, context -> { | |||
dbClient.groupPermissionDao().groupsCountByComponentIdAndPermission(dbSession, rootComponentIds, context -> { | |||
CountByProjectAndPermissionDto row = (CountByProjectAndPermissionDto) context.getResultObject(); | |||
userCountByRootComponentIdAndPermission.put(row.getComponentId(), row.getPermission(), row.getCount()); | |||
}); |
@@ -102,7 +102,7 @@ public class DeleteAction implements UserGroupsWsAction { | |||
boolean hasAdminPermission = dbClient.roleDao() | |||
.selectGroupPermissions(dbSession, groupName, null) | |||
.contains(GlobalPermissions.SYSTEM_ADMIN); | |||
boolean isOneRemainingAdminGroup = dbClient.permissionDao().countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null) == 1; | |||
boolean isOneRemainingAdminGroup = dbClient.groupPermissionDao().countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null) == 1; | |||
boolean hasNoStandaloneAdminUser = dbClient.userPermissionDao().countUsers(dbSession, | |||
PermissionQuery.builder().setPermission(GlobalPermissions.SYSTEM_ADMIN).withAtLeastOnePermission().build()) == 0; | |||
boolean isLastAdminGroup = hasAdminPermission && isOneRemainingAdminGroup && hasNoStandaloneAdminUser; |
@@ -283,7 +283,7 @@ public class ApplyTemplateActionTest { | |||
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) { | |||
PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build(); | |||
return dbClient.permissionDao().selectGroupNamesByPermissionQuery(dbSession, query); | |||
return dbClient.groupPermissionDao().selectGroupNamesByPermissionQuery(dbSession, query); | |||
} | |||
private List<String> selectProjectPermissionUsers(ComponentDto project, String permission) { |
@@ -254,7 +254,7 @@ public class BulkApplyTemplateActionTest { | |||
private List<String> selectProjectPermissionGroups(ComponentDto project, String permission) { | |||
PermissionQuery query = PermissionQuery.builder().setPermission(permission).setComponentUuid(project.uuid()).build(); | |||
return dbClient.permissionDao().selectGroupNamesByPermissionQuery(dbSession, query); | |||
return dbClient.groupPermissionDao().selectGroupNamesByPermissionQuery(dbSession, query); | |||
} | |||
private List<String> selectProjectPermissionUsers(ComponentDto project, String permission) { |
@@ -32,7 +32,7 @@ import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.permission.PermissionDao; | |||
import org.sonar.db.permission.GroupPermissionDao; | |||
import org.sonar.db.permission.template.PermissionTemplateDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.db.user.GroupDbTester; | |||
@@ -69,7 +69,7 @@ public class DeleteActionTest { | |||
UserGroupDao userGroupDao = dbClient.userGroupDao(); | |||
RoleDao roleDao = dbClient.roleDao(); | |||
PermissionTemplateDao permissionTemplateDao = dbClient.permissionTemplateDao(); | |||
PermissionDao permissionDao = dbClient.permissionDao(); | |||
GroupPermissionDao groupPermissionDao = dbClient.groupPermissionDao(); | |||
private WsTester ws; | |||
private Long defaultGroupId; | |||
@@ -176,7 +176,7 @@ public class DeleteActionTest { | |||
public void cannot_delete_last_system_admin_group() throws Exception { | |||
GroupDto group = groupDb.insertGroup(newGroupDto().setName("system-admins")); | |||
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(group.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN)); | |||
assertThat(permissionDao.countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null)).isEqualTo(1); | |||
assertThat(groupPermissionDao.countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null)).isEqualTo(1); | |||
dbSession.commit(); | |||
loginAsAdmin(); | |||
@@ -202,7 +202,7 @@ public class DeleteActionTest { | |||
.setParam(PARAM_GROUP_NAME, boringAdmins.getName()) | |||
.execute(); | |||
assertThat(permissionDao.countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null)).isEqualTo(1); | |||
assertThat(groupPermissionDao.countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null)).isEqualTo(1); | |||
} | |||
@Test |
@@ -50,7 +50,7 @@ import org.sonar.db.measure.custom.CustomMeasureDao; | |||
import org.sonar.db.metric.MetricDao; | |||
import org.sonar.db.notification.NotificationQueueDao; | |||
import org.sonar.db.organization.OrganizationDao; | |||
import org.sonar.db.permission.PermissionDao; | |||
import org.sonar.db.permission.GroupPermissionDao; | |||
import org.sonar.db.permission.UserPermissionDao; | |||
import org.sonar.db.permission.template.PermissionTemplateCharacteristicDao; | |||
import org.sonar.db.permission.template.PermissionTemplateDao; | |||
@@ -104,7 +104,7 @@ public class DaoModule extends Module { | |||
MetricDao.class, | |||
NotificationQueueDao.class, | |||
OrganizationDao.class, | |||
PermissionDao.class, | |||
GroupPermissionDao.class, | |||
PermissionTemplateDao.class, | |||
PermissionTemplateCharacteristicDao.class, | |||
PropertiesDao.class, |
@@ -50,7 +50,7 @@ import org.sonar.db.measure.custom.CustomMeasureDao; | |||
import org.sonar.db.metric.MetricDao; | |||
import org.sonar.db.notification.NotificationQueueDao; | |||
import org.sonar.db.organization.OrganizationDao; | |||
import org.sonar.db.permission.PermissionDao; | |||
import org.sonar.db.permission.GroupPermissionDao; | |||
import org.sonar.db.permission.UserPermissionDao; | |||
import org.sonar.db.permission.template.PermissionTemplateCharacteristicDao; | |||
import org.sonar.db.permission.template.PermissionTemplateDao; | |||
@@ -97,7 +97,7 @@ public class DbClient { | |||
private final UserTokenDao userTokenDao; | |||
private final GroupMembershipDao groupMembershipDao; | |||
private final RoleDao roleDao; | |||
private final PermissionDao permissionDao; | |||
private final GroupPermissionDao groupPermissionDao; | |||
private final PermissionTemplateDao permissionTemplateDao; | |||
private final PermissionTemplateCharacteristicDao permissionTemplateCharacteristicDao; | |||
private final IssueDao issueDao; | |||
@@ -158,7 +158,7 @@ public class DbClient { | |||
userTokenDao = getDao(map, UserTokenDao.class); | |||
groupMembershipDao = getDao(map, GroupMembershipDao.class); | |||
roleDao = getDao(map, RoleDao.class); | |||
permissionDao = getDao(map, PermissionDao.class); | |||
groupPermissionDao = getDao(map, GroupPermissionDao.class); | |||
permissionTemplateDao = getDao(map, PermissionTemplateDao.class); | |||
permissionTemplateCharacteristicDao = getDao(map, PermissionTemplateCharacteristicDao.class); | |||
issueDao = getDao(map, IssueDao.class); | |||
@@ -294,8 +294,8 @@ public class DbClient { | |||
return roleDao; | |||
} | |||
public PermissionDao permissionDao() { | |||
return permissionDao; | |||
public GroupPermissionDao groupPermissionDao() { | |||
return groupPermissionDao; | |||
} | |||
public PermissionTemplateDao permissionTemplateDao() { |
@@ -223,7 +223,7 @@ public class MyBatis { | |||
// ResourceMapper has to be loaded before IssueMapper because this last one used it | |||
confBuilder.loadMapper(ResourceMapper.class); | |||
confBuilder.loadMapper("org.sonar.db.permission.PermissionMapper"); | |||
confBuilder.loadMapper("org.sonar.db.permission.GroupPermissionMapper"); | |||
// keep them sorted alphabetically | |||
Class<?>[] mappers = { | |||
ActiveDashboardMapper.class, |
@@ -33,7 +33,7 @@ import org.sonar.db.user.GroupRoleDto; | |||
import static org.sonar.db.DatabaseUtils.executeLargeInputs; | |||
import static org.sonar.db.DatabaseUtils.executeLargeInputsWithoutOutput; | |||
public class PermissionDao implements Dao { | |||
public class GroupPermissionDao implements Dao { | |||
private static final String COMPONENT_ID_PARAMETER = "componentId"; | |||
private static final String ANYONE_GROUP_PARAMETER = "anyoneGroup"; | |||
@@ -78,8 +78,8 @@ public class PermissionDao implements Dao { | |||
}); | |||
} | |||
private static PermissionMapper mapper(DbSession session) { | |||
return session.getMapper(PermissionMapper.class); | |||
private static GroupPermissionMapper mapper(DbSession session) { | |||
return session.getMapper(GroupPermissionMapper.class); | |||
} | |||
} |
@@ -27,7 +27,7 @@ import org.apache.ibatis.session.ResultHandler; | |||
import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.db.user.GroupRoleDto; | |||
public interface PermissionMapper { | |||
public interface GroupPermissionMapper { | |||
int countGroups(Map<String, Object> parameters); | |||
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="UTF-8" ?> | |||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
<mapper namespace="org.sonar.db.permission.PermissionMapper"> | |||
<mapper namespace="org.sonar.db.permission.GroupPermissionMapper"> | |||
<sql id="usersSelection"> | |||
FROM users u |
@@ -48,7 +48,7 @@ import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN; | |||
import static org.sonar.db.component.ComponentTesting.newProjectDto; | |||
import static org.sonar.db.user.GroupTesting.newGroupDto; | |||
public class GroupWithPermissionDaoTest { | |||
public class GroupPermissionDaoTest { | |||
private static final long COMPONENT_ID = 100L; | |||
@@ -59,7 +59,7 @@ public class GroupWithPermissionDaoTest { | |||
private ComponentDbTester componentDb = new ComponentDbTester(db); | |||
private DbSession dbSession = db.getSession(); | |||
private PermissionDao underTest = new PermissionDao(); | |||
private GroupPermissionDao underTest = new GroupPermissionDao(); | |||
@Test | |||
public void group_count_by_permission_and_component_id() { |
@@ -1,18 +0,0 @@ | |||
<dataset> | |||
<users id="200" login="user1" name="User1" active="[true]"/> | |||
<users id="201" login="user2" name="User2" active="[true]"/> | |||
<users id="202" login="user3" name="User3" active="[true]"/> | |||
<users id="999" login="disabledUser" name="disabledUser" active="[false]"/> | |||
<!-- Project permissions --> | |||
<user_roles id="1" user_id="200" resource_id="100" role="user"/> | |||
<user_roles id="2" user_id="200" resource_id="100" role="admin"/> | |||
<user_roles id="3" user_id="200" resource_id="100" role="codeviewer"/> | |||
<user_roles id="4" user_id="201" resource_id="100" role="user"/> | |||
<!-- Global permission --> | |||
<user_roles id="10" user_id="200" resource_id="[null]" role="admin"/> | |||
</dataset> |
@@ -1,17 +0,0 @@ | |||
<dataset> | |||
<users id="200" login="user1" name="User1" active="[true]"/> | |||
<users id="201" login="user2" name="User2" active="[true]"/> | |||
<users id="202" login="user3" name="User3" active="[true]"/> | |||
<!-- Project permissions --> | |||
<user_roles id="1" user_id="200" resource_id="100" role="user"/> | |||
<user_roles id="2" user_id="200" resource_id="100" role="admin"/> | |||
<user_roles id="3" user_id="200" resource_id="100" role="codeviewer"/> | |||
<user_roles id="4" user_id="201" resource_id="100" role="user"/> | |||
<!-- Global permission --> | |||
<user_roles id="10" user_id="200" resource_id="[null]" role="admin"/> | |||
</dataset> |
@@ -1,11 +0,0 @@ | |||
<dataset> | |||
<users id="200" login="user3" name="User3" active="[true]"/> | |||
<users id="201" login="user1" name="User1" active="[true]"/> | |||
<users id="202" login="user2" name="User2" active="[true]"/> | |||
<user_roles id="1" user_id="200" resource_id="100" role="user"/> | |||
<user_roles id="2" user_id="200" resource_id="100" role="admin"/> | |||
<user_roles id="3" user_id="200" resource_id="100" role="codeviewer"/> | |||
</dataset> |