@@ -27,10 +27,10 @@ import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.UnauthorizedException; | |||
import org.sonar.server.i18n.I18nRule; | |||
@@ -48,7 +48,6 @@ import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION; | |||
import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN; | |||
import static org.sonar.test.JsonAssert.assertJson; | |||
public class SearchGlobalPermissionsActionTest { | |||
@Rule | |||
@@ -80,11 +79,11 @@ public class SearchGlobalPermissionsActionTest { | |||
UserDto user = insertUser(newUserDto("user", "user-name")); | |||
UserDto adminUser = insertUser(newUserDto("admin", "admin-name")); | |||
insertUserRole(newUserRoleDto(PROVISIONING, user.getId())); | |||
insertUserRole(newUserRoleDto(QUALITY_PROFILE_ADMIN, user.getId())); | |||
insertUserRole(newUserRoleDto(QUALITY_PROFILE_ADMIN, adminUser.getId())); | |||
insertUserRole(newUserRoleDto(QUALITY_GATE_ADMIN, user.getId())); | |||
insertUserRole(newUserRoleDto(QUALITY_GATE_ADMIN, adminUser.getId())); | |||
insertUserPermission(newUserPermission(PROVISIONING, user.getId())); | |||
insertUserPermission(newUserPermission(QUALITY_PROFILE_ADMIN, user.getId())); | |||
insertUserPermission(newUserPermission(QUALITY_PROFILE_ADMIN, adminUser.getId())); | |||
insertUserPermission(newUserPermission(QUALITY_GATE_ADMIN, user.getId())); | |||
insertUserPermission(newUserPermission(QUALITY_GATE_ADMIN, adminUser.getId())); | |||
db.getSession().commit(); | |||
@@ -140,8 +139,8 @@ public class SearchGlobalPermissionsActionTest { | |||
return db.getDbClient().userDao().insert(db.getSession(), user); | |||
} | |||
private void insertUserRole(UserPermissionDto userRole) { | |||
db.getDbClient().roleDao().insertUserRole(db.getSession(), userRole); | |||
private void insertUserPermission(UserPermissionDto dto) { | |||
db.getDbClient().userPermissionDao().insert(db.getSession(), dto); | |||
} | |||
private GroupDto insertGroup(GroupDto groupDto) { | |||
@@ -169,9 +168,7 @@ public class SearchGlobalPermissionsActionTest { | |||
return groupRole; | |||
} | |||
private static UserPermissionDto newUserRoleDto(String role, long userId) { | |||
return new UserPermissionDto() | |||
.setPermission(role) | |||
.setUserId(userId); | |||
private static UserPermissionDto newUserPermission(String permission, long userId) { | |||
return new UserPermissionDto(permission, userId, null); | |||
} | |||
} |
@@ -35,10 +35,10 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.component.ComponentFinder; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.UnauthorizedException; | |||
@@ -64,7 +64,6 @@ import static org.sonar.test.JsonAssert.assertJson; | |||
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PROJECT_ID; | |||
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_QUALIFIER; | |||
public class SearchProjectPermissionsActionTest { | |||
@Rule | |||
public ExpectedException expectedException = ExpectedException.none(); | |||
@@ -110,15 +109,15 @@ public class SearchProjectPermissionsActionTest { | |||
ComponentDto view = insertView(); | |||
insertProjectInView(jdk7, view); | |||
insertUserRole(UserRole.ISSUE_ADMIN, user1.getId(), jdk7.getId()); | |||
insertUserRole(UserRole.ADMIN, user1.getId(), jdk7.getId()); | |||
insertUserRole(UserRole.ADMIN, user2.getId(), jdk7.getId()); | |||
insertUserRole(UserRole.ADMIN, user3.getId(), jdk7.getId()); | |||
insertUserRole(UserRole.ISSUE_ADMIN, user1.getId(), project2.getId()); | |||
insertUserRole(UserRole.ISSUE_ADMIN, user1.getId(), dev.getId()); | |||
insertUserRole(UserRole.ISSUE_ADMIN, user1.getId(), view.getId()); | |||
insertUserPermission(UserRole.ISSUE_ADMIN, user1.getId(), jdk7.getId()); | |||
insertUserPermission(UserRole.ADMIN, user1.getId(), jdk7.getId()); | |||
insertUserPermission(UserRole.ADMIN, user2.getId(), jdk7.getId()); | |||
insertUserPermission(UserRole.ADMIN, user3.getId(), jdk7.getId()); | |||
insertUserPermission(UserRole.ISSUE_ADMIN, user1.getId(), project2.getId()); | |||
insertUserPermission(UserRole.ISSUE_ADMIN, user1.getId(), dev.getId()); | |||
insertUserPermission(UserRole.ISSUE_ADMIN, user1.getId(), view.getId()); | |||
// global permission | |||
insertUserRole(GlobalPermissions.SYSTEM_ADMIN, user1.getId(), null); | |||
insertUserPermission(GlobalPermissions.SYSTEM_ADMIN, user1.getId(), null); | |||
GroupDto group1 = insertGroup(newGroupDto()); | |||
GroupDto group2 = insertGroup(newGroupDto()); | |||
@@ -323,11 +322,8 @@ public class SearchProjectPermissionsActionTest { | |||
return dbClient.userDao().insert(dbSession, user.setActive(true)); | |||
} | |||
private void insertUserRole(String permission, long userId, @Nullable Long resourceId) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setUserId(userId) | |||
.setComponentId(resourceId)); | |||
private void insertUserPermission(String permission, long userId, @Nullable Long resourceId) { | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, userId, resourceId)); | |||
} | |||
private GroupDto insertGroup(GroupDto group) { |
@@ -35,13 +35,13 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.PermissionQuery; | |||
import org.sonar.db.permission.PermissionRepository; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.permission.template.PermissionTemplateDto; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.component.ComponentFinder; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
@@ -268,10 +268,7 @@ public class ApplyTemplateActionTest { | |||
} | |||
private void addUserPermissionToProject(UserDto user, ComponentDto project, String permission) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setUserId(user.getId()) | |||
.setComponentId(project.getId())); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, user.getId(), project.getId())); | |||
} | |||
private void addGroupPermissionToProject(GroupDto group, ComponentDto project, String permission) { |
@@ -37,15 +37,15 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.PermissionQuery; | |||
import org.sonar.db.permission.PermissionRepository; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.permission.template.PermissionTemplateDto; | |||
import org.sonar.db.user.GroupDbTester; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.user.UserDbTester; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.component.ComponentFinder; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
@@ -239,10 +239,7 @@ public class BulkApplyTemplateActionTest { | |||
} | |||
private void addUserPermissionToProject(UserDto user, ComponentDto project, String permission) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setUserId(user.getId()) | |||
.setComponentId(project.getId())); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, user.getId(), project.getId())); | |||
} | |||
private void addGroupPermissionToProject(GroupDto group, ComponentDto project, String permission) { |
@@ -41,12 +41,12 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentLinkDto; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.metric.MetricDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.user.GroupDbTester; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.user.UserDbTester; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.UnauthorizedException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
@@ -324,10 +324,7 @@ public class SearchMyProjectsActionTest { | |||
} | |||
private void insertUserPermission(String permission, long userId, long componentId) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setUserId(userId) | |||
.setComponentId(componentId)); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, userId, componentId)); | |||
db.commit(); | |||
} | |||
@@ -35,12 +35,12 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.property.PropertyDto; | |||
import org.sonar.db.qualitygate.ProjectQgateAssociation; | |||
import org.sonar.db.qualitygate.QualityGateDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.qualitygate.QgateProjectFinder.Association; | |||
import org.sonar.server.tester.UserSessionRule; | |||
@@ -157,7 +157,7 @@ public class QgateProjectFinderTest { | |||
componentDbTester.insertComponent(newProjectDto()); | |||
// User can only see project 1 | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto().setUserId(userDto.getId()).setComponentId(project1.getId()).setPermission(UserRole.USER)); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(UserRole.USER, userDto.getId(), project1.getId())); | |||
dbTester.commit(); | |||
Association result = underTest.find( |
@@ -29,11 +29,11 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.qualityprofile.QualityProfileDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.qualityprofile.QualityProfileDto; | |||
import org.sonar.db.user.RoleDao; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.qualityprofile.QProfileTesting; | |||
import org.sonar.server.tester.UserSessionRule; | |||
@@ -91,7 +91,7 @@ public class ProjectsActionTest { | |||
dbClient.componentDao().insert(session, project1, project2); | |||
// user only sees project1 | |||
roleDao.insertUserRole(session, new UserPermissionDto().setUserId(userId).setComponentId(project1.getId()).setPermission(UserRole.USER)); | |||
dbClient.userPermissionDao().insert(session, new UserPermissionDto(UserRole.USER, userId, project1.getId())); | |||
associateProjectsWithProfile(session, xooP1, project1, project2); | |||
@@ -39,8 +39,8 @@ import org.sonar.server.permission.DefaultPermissionTemplates; | |||
import org.sonar.server.platform.PersistentSettings; | |||
import static org.mockito.Matchers.any; | |||
import static org.mockito.Matchers.anyBoolean; | |||
import static org.mockito.Matchers.argThat; | |||
import static org.mockito.Matchers.eq; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.never; | |||
import static org.mockito.Mockito.verify; | |||
@@ -58,6 +58,7 @@ public class RegisterPermissionTemplatesTest { | |||
private DbClient dbClient; | |||
private UserDao userDao; | |||
private GroupDao groupDao; | |||
private DbSession dbSession = mock(DbSession.class); | |||
@Before | |||
public void setUp() { | |||
@@ -72,6 +73,7 @@ public class RegisterPermissionTemplatesTest { | |||
when(dbClient.loadedTemplateDao()).thenReturn(loadedTemplateDao); | |||
when(dbClient.userDao()).thenReturn(userDao); | |||
when(dbClient.groupDao()).thenReturn(groupDao); | |||
when(dbClient.openSession(anyBoolean())).thenReturn(dbSession); | |||
} | |||
@Test | |||
@@ -82,20 +84,20 @@ public class RegisterPermissionTemplatesTest { | |||
when(loadedTemplateDao.countByTypeAndKey(LoadedTemplateDto.PERMISSION_TEMPLATE_TYPE, DefaultPermissionTemplates.DEFAULT_TEMPLATE.getUuid())) | |||
.thenReturn(0); | |||
when(permissionTemplateDao.insert(any(DbSession.class), eq(DefaultPermissionTemplates.DEFAULT_TEMPLATE))) | |||
when(permissionTemplateDao.insert(dbSession, DefaultPermissionTemplates.DEFAULT_TEMPLATE)) | |||
.thenReturn(permissionTemplate); | |||
when(groupDao.selectByName(any(DbSession.class), eq(DefaultGroups.ADMINISTRATORS))).thenReturn(new GroupDto().setId(1L)); | |||
when(groupDao.selectByName(any(DbSession.class), eq(DefaultGroups.USERS))).thenReturn(new GroupDto().setId(2L)); | |||
when(groupDao.selectByName(dbSession, DefaultGroups.ADMINISTRATORS)).thenReturn(new GroupDto().setId(1L)); | |||
when(groupDao.selectByName(dbSession, DefaultGroups.USERS)).thenReturn(new GroupDto().setId(2L)); | |||
RegisterPermissionTemplates initializer = new RegisterPermissionTemplates(dbClient, settings); | |||
initializer.start(); | |||
verify(loadedTemplateDao).insert(argThat(Matches.template(expectedTemplate))); | |||
verify(permissionTemplateDao).insert(any(DbSession.class), eq(DefaultPermissionTemplates.DEFAULT_TEMPLATE)); | |||
verify(permissionTemplateDao).insertGroupPermission(any(DbSession.class),eq(1L), eq(1L), eq(UserRole.ADMIN)); | |||
verify(permissionTemplateDao).insertGroupPermission(any(DbSession.class), eq(1L), eq(1L), eq(UserRole.ISSUE_ADMIN)); | |||
verify(permissionTemplateDao).insertGroupPermission(any(DbSession.class), eq(1L), eq(null), eq(UserRole.USER)); | |||
verify(permissionTemplateDao).insertGroupPermission(any(DbSession.class), eq(1L), eq(null), eq(UserRole.CODEVIEWER)); | |||
verify(permissionTemplateDao).insert(dbSession, DefaultPermissionTemplates.DEFAULT_TEMPLATE); | |||
verify(permissionTemplateDao).insertGroupPermission(dbSession, 1L, 1L, UserRole.ADMIN); | |||
verify(permissionTemplateDao).insertGroupPermission(dbSession, 1L, 1L, UserRole.ISSUE_ADMIN); | |||
verify(permissionTemplateDao).insertGroupPermission(dbSession, 1L, null, UserRole.USER); | |||
verify(permissionTemplateDao).insertGroupPermission(dbSession, 1L, null, UserRole.CODEVIEWER); | |||
verifyNoMoreInteractions(permissionTemplateDao); | |||
verify(settings).saveProperty(DEFAULT_TEMPLATE_PROPERTY, DefaultPermissionTemplates.DEFAULT_TEMPLATE.getUuid()); | |||
} |
@@ -34,8 +34,8 @@ import org.sonar.db.component.ComponentDbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -282,10 +282,7 @@ public class ServerUserSessionTest { | |||
private void addPermissions( @Nullable ComponentDto component, String... permissions) { | |||
for (String permission : permissions) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setComponentId(component == null ? null : component.getId()) | |||
.setUserId(userDto.getId())); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, userDto.getId(), component == null ? null : component.getId())); | |||
} | |||
dbSession.commit(); | |||
} |
@@ -33,17 +33,17 @@ import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.permission.GroupPermissionDao; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.permission.template.PermissionTemplateDao; | |||
import org.sonar.db.user.GroupDao; | |||
import org.sonar.db.user.GroupDbTester; | |||
import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.user.RoleDao; | |||
import org.sonar.db.user.UserDbTester; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserGroupDao; | |||
import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.ws.WsTester; | |||
@@ -210,7 +210,7 @@ public class DeleteActionTest { | |||
GroupDto lastGroup = groupDb.insertGroup(newGroupDto().setName("last-group")); | |||
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(lastGroup.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN)); | |||
UserDto bigBoss = userDb.insertUser(newUserDto("big.boss", "Big Boss", "big@boss.com")); | |||
roleDao.insertUserRole(dbSession, new UserPermissionDto().setUserId(bigBoss.getId()).setPermission(GlobalPermissions.SYSTEM_ADMIN)); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(GlobalPermissions.SYSTEM_ADMIN, bigBoss.getId(), null)); | |||
dbSession.commit(); | |||
loginAsAdmin(); |
@@ -87,6 +87,7 @@ import org.sonar.db.organization.OrganizationMapper; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
import org.sonar.db.permission.GroupPermissionMapper; | |||
import org.sonar.db.permission.PermissionMapper; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
import org.sonar.db.permission.UserPermissionMapper; | |||
import org.sonar.db.permission.template.PermissionTemplateCharacteristicDto; | |||
import org.sonar.db.permission.template.PermissionTemplateCharacteristicMapper; | |||
@@ -129,7 +130,6 @@ import org.sonar.db.user.UserDto; | |||
import org.sonar.db.user.UserGroupDto; | |||
import org.sonar.db.user.UserGroupMapper; | |||
import org.sonar.db.user.UserMapper; | |||
import org.sonar.db.user.UserPermissionDto; | |||
import org.sonar.db.user.UserTokenCount; | |||
import org.sonar.db.user.UserTokenDto; | |||
import org.sonar.db.user.UserTokenMapper; |
@@ -28,7 +28,6 @@ import org.sonar.db.permission.GroupPermissionDto; | |||
public class RoleDao implements Dao { | |||
// TODO to be moved to PermissionVerifierDao | |||
public List<Long> selectComponentIdsByPermissionAndUserId(DbSession dbSession, String permission, long userId) { | |||
return mapper(dbSession).selectComponentIdsByPermissionAndUserId(permission, userId); | |||
} | |||
@@ -41,14 +40,6 @@ public class RoleDao implements Dao { | |||
mapper(session).insertGroupRole(dto); | |||
} | |||
/** | |||
* @deprecated replaced by {@link org.sonar.db.permission.UserPermissionDao#insert(DbSession, org.sonar.db.permission.UserPermissionDto)} | |||
*/ | |||
@Deprecated | |||
public void insertUserRole(DbSession session, UserPermissionDto dto) { | |||
mapper(session).insertUserRole(dto); | |||
} | |||
public void deleteGroupRole(GroupPermissionDto groupRole, DbSession session) { | |||
mapper(session).deleteGroupRole(groupRole); | |||
} |
@@ -38,8 +38,6 @@ public interface RoleMapper { | |||
void insertGroupRole(GroupPermissionDto dto); | |||
void insertUserRole(UserPermissionDto dto); | |||
void deleteGroupRole(GroupPermissionDto dto); | |||
void deleteGroupRolesByResourceId(long projectId); |
@@ -1,57 +0,0 @@ | |||
/* | |||
* SonarQube | |||
* Copyright (C) 2009-2016 SonarSource SA | |||
* mailto:contact AT sonarsource DOT com | |||
* | |||
* This program is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* This program is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.db.user; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
public class UserPermissionDto { | |||
private Long userId; | |||
private Long componentId; | |||
private String permission; | |||
public Long getUserId() { | |||
return userId; | |||
} | |||
public UserPermissionDto setUserId(Long userId) { | |||
this.userId = userId; | |||
return this; | |||
} | |||
@CheckForNull | |||
public Long getComponentId() { | |||
return componentId; | |||
} | |||
public UserPermissionDto setComponentId(@Nullable Long componentId) { | |||
this.componentId = componentId; | |||
return this; | |||
} | |||
public String getPermission() { | |||
return permission; | |||
} | |||
public UserPermissionDto setPermission(String permission) { | |||
this.permission = permission; | |||
return this; | |||
} | |||
} |
@@ -54,11 +54,6 @@ | |||
VALUES (#{groupId}, #{resourceId}, #{role}) | |||
</insert> | |||
<insert id="insertUserRole" parameterType="UserPermission" keyColumn="id" useGeneratedKeys="true" keyProperty="id"> | |||
INSERT INTO user_roles (user_id, resource_id, role) | |||
VALUES (#{userId}, #{componentId}, #{permission}) | |||
</insert> | |||
<delete id="deleteGroupRole" parameterType="map"> | |||
DELETE FROM group_roles | |||
WHERE role=#{role} |
@@ -24,7 +24,6 @@ import javax.annotation.Nullable; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.user.UserPermissionDto; | |||
public class PermissionDbTester { | |||
private final DbTester db; | |||
@@ -38,9 +37,7 @@ public class PermissionDbTester { | |||
} | |||
public void addGlobalPermissionToUser(String permission, long userId) { | |||
dbClient.roleDao().insertUserRole(dbSession, new UserPermissionDto() | |||
.setPermission(permission) | |||
.setUserId(userId)); | |||
dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, userId, null)); | |||
db.commit(); | |||
} | |||
@@ -20,6 +20,7 @@ | |||
package org.sonar.db.user; | |||
import java.util.List; | |||
import javax.annotation.Nullable; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.api.security.DefaultGroups; | |||
@@ -44,14 +45,14 @@ public class RoleDaoTest { | |||
@Test | |||
public void select_user_permissions_by_permission_and_user_id() { | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(1L).setComponentId(2L)); | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(1L).setComponentId(3L)); | |||
insertUserPermission(UserRole.ADMIN, 1L, 2L); | |||
insertUserPermission(UserRole.ADMIN, 1L, 3L); | |||
// global permission - not returned | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(1L).setComponentId(null)); | |||
insertUserPermission(UserRole.ADMIN, 1L, null); | |||
// project permission on another user id - not returned | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(42L).setComponentId(2L)); | |||
insertUserPermission(UserRole.ADMIN, 42L, 2L); | |||
// project permission on another permission - not returned | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(GlobalPermissions.SCAN_EXECUTION).setUserId(1L).setComponentId(2L)); | |||
insertUserPermission(GlobalPermissions.SCAN_EXECUTION, 1L, 2L); | |||
db.commit(); | |||
List<Long> result = underTest.selectComponentIdsByPermissionAndUserId(dbSession, UserRole.ADMIN, 1L); | |||
@@ -77,7 +78,7 @@ public class RoleDaoTest { | |||
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(5L).setResourceId(5L)); | |||
groupDb.addUserToGroup(userId, 5L); | |||
// duplicates on resource id - should be returned once | |||
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(userId).setComponentId(2L)); | |||
insertUserPermission(UserRole.ADMIN, userId, 2L); | |||
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(3L).setResourceId(3L)); | |||
db.commit(); | |||
@@ -168,16 +169,9 @@ public class RoleDaoTest { | |||
public void count_users_with_one_specific_permission() { | |||
DbClient dbClient = db.getDbClient(); | |||
UserDto user = dbClient.userDao().insert(db.getSession(), new UserDto().setActive(true)); | |||
dbClient.roleDao().insertUserRole(db.getSession(), new UserPermissionDto() | |||
.setUserId(user.getId()) | |||
.setComponentId(123L) | |||
.setPermission(GlobalPermissions.SYSTEM_ADMIN)); | |||
dbClient.roleDao().insertUserRole(db.getSession(), new UserPermissionDto() | |||
.setUserId(user.getId()) | |||
.setPermission(GlobalPermissions.SYSTEM_ADMIN)); | |||
dbClient.roleDao().insertUserRole(db.getSession(), new UserPermissionDto() | |||
.setUserId(user.getId()) | |||
.setPermission(GlobalPermissions.SCAN_EXECUTION)); | |||
insertUserPermission(GlobalPermissions.SYSTEM_ADMIN, user.getId(), 123L); | |||
insertUserPermission(GlobalPermissions.SYSTEM_ADMIN, user.getId(), null); | |||
insertUserPermission(GlobalPermissions.SCAN_EXECUTION, user.getId(), null); | |||
int result = underTest.countUserPermissions(db.getSession(), GlobalPermissions.SYSTEM_ADMIN, null); | |||
@@ -216,12 +210,14 @@ public class RoleDaoTest { | |||
dbClient.roleDao().insertGroupRole(db.getSession(), new GroupPermissionDto() | |||
.setGroupId(group.getId()) | |||
.setRole(GlobalPermissions.SYSTEM_ADMIN)); | |||
dbClient.roleDao().insertUserRole(db.getSession(), new UserPermissionDto() | |||
.setUserId(user.getId()) | |||
.setPermission(GlobalPermissions.SYSTEM_ADMIN)); | |||
insertUserPermission(GlobalPermissions.SYSTEM_ADMIN, user.getId(), null); | |||
int result = underTest.countUserPermissions(db.getSession(), GlobalPermissions.SYSTEM_ADMIN, null); | |||
assertThat(result).isEqualTo(2); | |||
} | |||
private void insertUserPermission(String permission, long userId, @Nullable Long projectId) { | |||
db.getDbClient().userPermissionDao().insert(dbSession, new org.sonar.db.permission.UserPermissionDto(permission, userId, projectId)); | |||
} | |||
} |
@@ -289,7 +289,7 @@ public class UserDaoTest { | |||
MeasureFilterDto measureFilter = insertMeasureFilter(user, false); | |||
MeasureFilterFavouriteDto measureFilterFavourite = insertMeasureFilterFavourite(measureFilter, user); | |||
PropertyDto property = insertProperty(user); | |||
insertUserRole(user); | |||
insertUserPermission(user); | |||
insertUserGroup(user); | |||
UserDto otherUser = newActiveUser(); | |||
@@ -535,9 +535,10 @@ public class UserDaoTest { | |||
return dto; | |||
} | |||
private UserPermissionDto insertUserRole(UserDto user) { | |||
UserPermissionDto dto = new UserPermissionDto().setUserId(user.getId()).setPermission(randomAlphanumeric(64)); | |||
dbClient.roleDao().insertUserRole(session, dto); | |||
private org.sonar.db.permission.UserPermissionDto insertUserPermission(UserDto user) { | |||
String permission = randomAlphanumeric(64); | |||
org.sonar.db.permission.UserPermissionDto dto = new org.sonar.db.permission.UserPermissionDto(permission, user.getId(), null); | |||
dbClient.userPermissionDao().insert(session, dto); | |||
return dto; | |||
} | |||