feat(server): 增加删除工作台下的所有人员与平台角色接口

https://jira.axzo.cn/browse/REQ-1502?goToView=1

modify:
1. 增加删除工作台下的所有人员与平台角色接口
This commit is contained in:
金海洋 2023-10-17 18:53:30 +08:00
parent 31958870c9
commit cb6aa953e1
6 changed files with 111 additions and 15 deletions

View File

@ -21,4 +21,16 @@ Content-Type: application/json
> reponse-check.js
###
POST {{host}}/api/saas-role-user/delete-user-role-of-workspace
Accept: application/json
Content-Type: application/json
{
}
> reponse-check.js

View File

@ -1,19 +1,25 @@
package cn.axzo.tyr.client.feign;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.roleuser.dto.CreateAdminRoleDTO;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO;
import cn.axzo.tyr.client.model.roleuser.req.*;
import cn.axzo.tyr.client.model.roleuser.req.CreateAgencyAdminRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.CreateWorkspaceAdminRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteAdminRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRolesOfWorkspaceParam;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
import cn.axzo.tyr.client.model.roleuser.req.SuperAdminParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 角色
@ -41,16 +47,16 @@ public interface TyrSaasRoleUserApi {
* @param param
* @return
*/
@PostMapping("api/saas-role-user/delete")
@PostMapping("/api/saas-role-user/delete")
ApiResult<Boolean> deleteUserAllRoles(@RequestBody @Valid List<DeleteRoleUserParam> param);
/**
* 新的 移除某个人在某个工作台的所有角色(除超管)
* 删除某个用户非超管角色()
*
* @param param
* @return
*/
@PostMapping("api/saas-role-user/delete-user-role")
@PostMapping("/api/saas-role-user/delete-user-role")
ApiResult<Boolean> deleteUserRoles(@RequestBody @Valid DeleteUserRoleParam param);
/**
@ -87,4 +93,13 @@ public interface TyrSaasRoleUserApi {
*/
@PostMapping("api/saas-role-user/super-admin")
ApiResult<SuperAdminInfoDTO> superAdmin(@RequestBody @Valid SuperAdminParam param);
/**
* 删除工作台下的所有人员与平台角色
*
* @param param
* @return
*/
@PostMapping("/api/saas-role-user/delete-user-role-of-workspace")
ApiResult<Boolean> deleteUserRolesOfWorkspace(@RequestBody @Valid DeleteUserRolesOfWorkspaceParam param);
}

View File

@ -0,0 +1,30 @@
package cn.axzo.tyr.client.model.roleuser.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
/**
* @author haiyangjin
* @date 2023/10/17
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeleteUserRolesOfWorkspaceParam {
/**
* 工作台id
*/
@NotNull(message = "工作台ID不能为空")
private Long workspaceId;
/**
* 单位id
*/
@NotNull(message = "单位ID不能为空")
private Long ouId;
}

View File

@ -4,6 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
import cn.axzo.tyr.client.model.roleuser.dto.CreateAdminRoleDTO;
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO;
import cn.axzo.tyr.client.model.roleuser.req.*;
import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO;
import cn.axzo.tyr.client.model.roleuser.req.*;
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
@ -46,7 +47,7 @@ public class RoleUserController implements TyrSaasRoleUserApi {
}
/**
* 新的 移除某个人在某个工作台的所有角色(除超管)
* 删除用户非超管角色
*
* @param param
* @return
@ -56,6 +57,17 @@ public class RoleUserController implements TyrSaasRoleUserApi {
return ApiResult.ok(saasRoleUserService.deleteUserRoles(param));
}
/**
* 删除工作台下的所有人员与平台角色
*
* @param param
* @return
*/
@Override
public ApiResult<Boolean> deleteUserRolesOfWorkspace(DeleteUserRolesOfWorkspaceParam param) {
return ApiResult.ok(saasRoleUserService.deleteUserRolesOfWorkspace(param));
}
@Override
public ApiResult<CreateAdminRoleDTO> createAgencyAdminRole(CreateAgencyAdminRoleParam param) {
// todo cn.axzo.basics.auth.api.SaasRoleApi#grantAgencyAdminRole

View File

@ -3,7 +3,7 @@ package cn.axzo.tyr.server.service;
import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRolesOfWorkspaceParam;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
@ -44,6 +44,14 @@ public interface SaasRoleUserService {
*/
boolean deleteUserRoles(DeleteUserRoleParam param);
/**
* 删除某个工作台下的人和角色
*
* @param param
* @return
*/
boolean deleteUserRolesOfWorkspace(DeleteUserRolesOfWorkspaceParam param);
/**
* <pre>

View File

@ -7,6 +7,7 @@ import cn.axzo.tyr.client.model.BaseWorkspaceModel;
import cn.axzo.tyr.client.model.enums.IdentityType;
import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRolesOfWorkspaceParam;
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao;
@ -120,6 +121,7 @@ public class RoleUserService implements SaasRoleUserService {
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteUserRoles(DeleteUserRoleParam param) {
List<SaasRole> roleList = saasRoleDao.lambdaQuery()
.eq(Objects.nonNull(param.getOuId()), SaasRole::getOwnerOuId, param.getOuId())
@ -138,6 +140,23 @@ public class RoleUserService implements SaasRoleUserService {
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteUserRolesOfWorkspace(DeleteUserRolesOfWorkspaceParam param) {
// 删除所有的角色
saasRoleDao.remove(Wrappers.lambdaQuery(SaasRole.class)
.eq(SaasRole::getWorkspaceId, param.getWorkspaceId())
.eq(SaasRole::getOwnerOuId, param.getOuId())
.eq(SaasRole::getRoleType, RoleTypeEnum.COMMON.getValue())
);
// 删除工作台下所有的人和角色的关系
roleUserRelationDao.remove(Wrappers.lambdaQuery(SaasRoleUserRelation.class)
.eq(SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId())
.eq(SaasRoleUserRelation::getOuId, param.getOuId())
);
return true;
}
@Override
public List<SaasRoleUserRelation> queryByWorkspaceIdOrOu(Long identityId, IdentityType identityType, Set<Long> workspaceIds, Set<Long> ouIds) {
return roleUserRelationDao.queryByWorkspaceIdOrOu(identityId, identityType, workspaceIds, ouIds);