瀏覽代碼

Remove RoleDao#insertUserRole()

tags/6.2-RC1
Simon Brandhof 7 年之前
父節點
當前提交
f2115ee22b
共有 18 個文件被更改,包括 76 次插入172 次删除
  1. 11
    14
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java
  2. 12
    16
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
  3. 3
    6
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
  4. 3
    6
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java
  5. 3
    6
      server/sonar-server/src/test/java/org/sonar/server/project/ws/SearchMyProjectsActionTest.java
  6. 3
    3
      server/sonar-server/src/test/java/org/sonar/server/qualitygate/QgateProjectFinderTest.java
  7. 3
    3
      server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java
  8. 11
    9
      server/sonar-server/src/test/java/org/sonar/server/startup/RegisterPermissionTemplatesTest.java
  9. 2
    5
      server/sonar-server/src/test/java/org/sonar/server/user/ServerUserSessionTest.java
  10. 3
    3
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
  11. 1
    1
      sonar-db/src/main/java/org/sonar/db/MyBatis.java
  12. 0
    9
      sonar-db/src/main/java/org/sonar/db/user/RoleDao.java
  13. 0
    2
      sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java
  14. 0
    57
      sonar-db/src/main/java/org/sonar/db/user/UserPermissionDto.java
  15. 0
    5
      sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
  16. 1
    4
      sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java
  17. 15
    19
      sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java
  18. 5
    4
      sonar-db/src/test/java/org/sonar/db/user/UserDaoTest.java

+ 11
- 14
server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java 查看文件

@@ -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);
}
}

+ 12
- 16
server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java 查看文件

@@ -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) {

+ 3
- 6
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java 查看文件

@@ -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) {

+ 3
- 6
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java 查看文件

@@ -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) {

+ 3
- 6
server/sonar-server/src/test/java/org/sonar/server/project/ws/SearchMyProjectsActionTest.java 查看文件

@@ -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();
}


+ 3
- 3
server/sonar-server/src/test/java/org/sonar/server/qualitygate/QgateProjectFinderTest.java 查看文件

@@ -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(

+ 3
- 3
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java 查看文件

@@ -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);


+ 11
- 9
server/sonar-server/src/test/java/org/sonar/server/startup/RegisterPermissionTemplatesTest.java 查看文件

@@ -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());
}

+ 2
- 5
server/sonar-server/src/test/java/org/sonar/server/user/ServerUserSessionTest.java 查看文件

@@ -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();
}

+ 3
- 3
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java 查看文件

@@ -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();

+ 1
- 1
sonar-db/src/main/java/org/sonar/db/MyBatis.java 查看文件

@@ -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;

+ 0
- 9
sonar-db/src/main/java/org/sonar/db/user/RoleDao.java 查看文件

@@ -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);
}

+ 0
- 2
sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java 查看文件

@@ -38,8 +38,6 @@ public interface RoleMapper {

void insertGroupRole(GroupPermissionDto dto);

void insertUserRole(UserPermissionDto dto);

void deleteGroupRole(GroupPermissionDto dto);

void deleteGroupRolesByResourceId(long projectId);

+ 0
- 57
sonar-db/src/main/java/org/sonar/db/user/UserPermissionDto.java 查看文件

@@ -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;
}
}

+ 0
- 5
sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml 查看文件

@@ -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}

+ 1
- 4
sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java 查看文件

@@ -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();
}


+ 15
- 19
sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java 查看文件

@@ -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));
}
}

+ 5
- 4
sonar-db/src/test/java/org/sonar/db/user/UserDaoTest.java 查看文件

@@ -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;
}


Loading…
取消
儲存