diff --git a/backend/src/main/java/io/metersphere/controller/UserController.java b/backend/src/main/java/io/metersphere/controller/UserController.java index 55324f028e0867c3cf06af154d2d5672301792d2..e6314d2788e9a1ca6ad54a4bf9b43727936cf20e 100644 --- a/backend/src/main/java/io/metersphere/controller/UserController.java +++ b/backend/src/main/java/io/metersphere/controller/UserController.java @@ -17,15 +17,14 @@ import io.metersphere.controller.request.member.SetAdminRequest; import io.metersphere.controller.request.organization.AddOrgMemberRequest; import io.metersphere.controller.request.organization.QueryOrgMemberRequest; import io.metersphere.dto.UserDTO; +import io.metersphere.dto.UserRoleDTO; import io.metersphere.service.OrganizationService; import io.metersphere.service.UserService; import io.metersphere.service.WorkspaceService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresRoles; -import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; - import javax.annotation.Resource; import java.util.List; @@ -54,6 +53,12 @@ public class UserController { return PageUtils.setPageInfo(page, userService.getUserListWithRequest(request)); } + @GetMapping("/special/user/role/{userId}") + @RequiresRoles(RoleConstants.ADMIN) + public UserRoleDTO getUserRole(@PathVariable("userId") String userId) { + return userService.getUserRole(userId); + } + @GetMapping("/special/delete/{userId}") @RequiresRoles(RoleConstants.ADMIN) public void deleteUser(@PathVariable(value = "userId") String userId) { diff --git a/backend/src/main/java/io/metersphere/dto/UserRoleDTO.java b/backend/src/main/java/io/metersphere/dto/UserRoleDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..80009d51c3f239fada5b7c50368702efe74248a0 --- /dev/null +++ b/backend/src/main/java/io/metersphere/dto/UserRoleDTO.java @@ -0,0 +1,18 @@ +package io.metersphere.dto; + +import io.metersphere.base.domain.Role; +import io.metersphere.base.domain.UserRole; +import lombok.Getter; +import lombok.Setter; +import java.util.List; + +@Getter +@Setter +public class UserRoleDTO { + + private String userId; + private List roles; + private List userRoles; + private static final long serialVersionUID = 1L; + +} diff --git a/backend/src/main/java/io/metersphere/service/UserService.java b/backend/src/main/java/io/metersphere/service/UserService.java index 7ee198862ba5d6bf4e5bb80db55d1e6db0e1595f..f0c9a244169c9d8632be437e29e6e35f1b873edd 100644 --- a/backend/src/main/java/io/metersphere/service/UserService.java +++ b/backend/src/main/java/io/metersphere/service/UserService.java @@ -17,13 +17,13 @@ import io.metersphere.controller.request.member.SetAdminRequest; import io.metersphere.controller.request.organization.AddOrgMemberRequest; import io.metersphere.controller.request.organization.QueryOrgMemberRequest; import io.metersphere.dto.UserDTO; +import io.metersphere.dto.UserRoleDTO; import io.metersphere.i18n.Translator; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; - import javax.annotation.Resource; import java.util.List; import java.util.UUID; @@ -100,16 +100,24 @@ public class UserService { } UserDTO userDTO = new UserDTO(); BeanUtils.copyProperties(user, userDTO); + UserRoleDTO userRole = getUserRole(userId); + userDTO.setUserRoles(userRole.getUserRoles()); + userDTO.setRoles(userRole.getRoles()); + return userDTO; + } + + public UserRoleDTO getUserRole(String userId) { + UserRoleDTO userRoleDTO = new UserRoleDTO(); // UserRoleExample userRoleExample = new UserRoleExample(); userRoleExample.createCriteria().andUserIdEqualTo(userId); List userRoleList = userRoleMapper.selectByExample(userRoleExample); if (CollectionUtils.isEmpty(userRoleList)) { - return userDTO; + return userRoleDTO; } // 设置 user_role - userDTO.setUserRoles(userRoleList); + userRoleDTO.setUserRoles(userRoleList); List roleIds = userRoleList.stream().map(UserRole::getRoleId).collect(Collectors.toList()); @@ -117,9 +125,9 @@ public class UserService { roleExample.createCriteria().andIdIn(roleIds); List roleList = roleMapper.selectByExample(roleExample); - userDTO.setRoles(roleList); + userRoleDTO.setRoles(roleList); - return userDTO; + return userRoleDTO; } public List getUserList() { diff --git a/frontend/src/business/components/settings/system/User.vue b/frontend/src/business/components/settings/system/User.vue index aaf7ca4ca175406ed5ba5e9e93cb47f1e64c198d..56d1dc0389b47923288d2f6dac65374b5f12a718 100644 --- a/frontend/src/business/components/settings/system/User.vue +++ b/frontend/src/business/components/settings/system/User.vue @@ -1,7 +1,7 @@