创建机构管理员账户角色

This commit is contained in:
yangsong 2023-10-20 09:48:33 +08:00
parent b24927820a
commit 7b0be4dfd2
6 changed files with 67 additions and 41 deletions

View File

@ -59,7 +59,7 @@ public interface TyrSaasRoleUserApi {
* @return
*/
@PostMapping("/api/saas-role-user/create-agency-admin-role")
ApiResult<CreateAdminRoleDTO> createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param);
ApiResult<Void> createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param);
@PostMapping("/api/saas-role-user/create-super-admin-role")
ApiResult<Void> createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param);

View File

@ -1,16 +1,18 @@
package cn.axzo.tyr.client.model.req;
import java.util.ArrayList;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import cn.axzo.basics.common.page.PageRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ -70,4 +72,20 @@ public class QuerySaasPermissionGroupReq extends PageRequest {
@NotNull
@Builder.Default
private Boolean fetchPage = Boolean.TRUE;
public QuerySaasPermissionGroupReq buildDefault() {
if (this.workspaceId == null) {
this.workspaceId = new ArrayList<>();
}
if (this.ouId == null) {
this.ouId = new ArrayList<>();
}
if (!workspaceId.contains(-1L)) {
workspaceId.add(-1L);
}
if (!ouId.contains(-1L)) {
ouId.add(-1L);
}
return this;
}
}

View File

@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@ -25,23 +26,27 @@ public class QuerySaasRoleReq {
/**
* 工作台类型编码
* sassRoleGroupIds 互斥如果存在sassRoleGroupIds该字段不生效
*/
private List<String> workspaceTypeCode;
/**
* 单位类型编码
* sassRoleGroupIds 互斥如果存在sassRoleGroupIds该字段不生效
*/
private List<String> ouTypeCode;
/**
* 工作台id过滤权限集作用范围
* 特殊参数该参数和ids 互斥有ids该参数不生效
* 1在过滤角色时该参数和ids 互斥有ids该参数不生效
* 2在过滤分组时该参数和sassRoleGroupIds 互斥有sassRoleGroupIds该参数不生效
*/
private List<Long> workspaceId;
/**
* 单位id过滤权限集作用范围
* 特殊参数该参数和ids 互斥有ids该参数不生效
* 1在过滤角色时该参数和ids 互斥有ids该参数不生效
* 2在过滤分组时该参数和sassRoleGroupIds 互斥有sassRoleGroupIds该参数不生效
*/
private List<Long> ouId;
@ -56,4 +61,20 @@ public class QuerySaasRoleReq {
* 是否包含权限集如果不需要则不执行后续查询链路
*/
private Boolean includePermissionGroup;
public QuerySaasRoleReq buildDefault() {
if (this.workspaceId == null) {
this.workspaceId = new ArrayList<>();
}
if (this.ouId == null) {
this.ouId = new ArrayList<>();
}
if (!workspaceId.contains(-1L)) {
workspaceId.add(-1L);
}
if (!ouId.contains(-1L)) {
ouId.add(-1L);
}
return this;
}
}

View File

@ -1,8 +1,14 @@
package cn.axzo.tyr.server.controller.roleuser;
import java.util.List;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
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.dto.SuperAdminInfoDTO;
import cn.axzo.tyr.client.model.roleuser.req.*;
@ -10,11 +16,6 @@ import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
import cn.axzo.tyr.server.service.SaasRoleUserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
/**
* @author tanjie@axzo.cn
@ -55,9 +56,9 @@ public class RoleUserController implements TyrSaasRoleUserApi {
}
@Override
public ApiResult<CreateAdminRoleDTO> createAgencyAdminRole(CreateAgencyAdminRoleParam param) {
// todo cn.axzo.basics.auth.api.SaasRoleApi#grantAgencyAdminRole
return ApiResult.ok(new CreateAdminRoleDTO());
public ApiResult<Void> createAgencyAdminRole(CreateAgencyAdminRoleParam param) {
saasRoleUserService.createAgencyAdminRole(param);
return ApiResult.ok();
}
@Override

View File

@ -56,16 +56,7 @@ public class PermissionGroupImpl implements PermissionGroupService {
@Override
public PageResp<SaasPermissionGroupVO> page(QuerySaasPermissionGroupReq req) {
if (CollectionUtils.isEmpty(req.getWorkspaceId())) {
req.setWorkspaceId(Arrays.asList(-1L));
} else if(!req.getWorkspaceId().contains(-1L)){
req.getWorkspaceId().add(-1L);
}
if (CollectionUtils.isEmpty(req.getOuId())) {
req.setOuId(Arrays.asList(-1L));
} else if (!req.getOuId().contains(-1L)) {
req.getOuId().add(-1L);
}
req.buildDefault();
// 如果角色id不为空则先查询角色权限集关联表
IPage<SaasPermissionGroup> iPage = req.toPage();
List<SaasPgroupRoleRelation> relationList = null;

View File

@ -155,25 +155,20 @@ public class RoleServiceImpl implements RoleService {
@Override
public List<SaasRoleVO> query(QuerySaasRoleReq req) {
// 如果没有传则默认查询通用维度默认值是 -1-1+传入的参数含义是查询通用和自定义
if (CollectionUtils.isEmpty(req.getWorkspaceId())) {
req.setWorkspaceId(Arrays.asList(-1L));
} else if(!req.getWorkspaceId().contains(-1L)){
req.getWorkspaceId().add(-1L);
}
if (CollectionUtils.isEmpty(req.getOuId())) {
req.setOuId(Arrays.asList(-1L));
} else if (!req.getOuId().contains(-1L)) {
req.getOuId().add(-1L);
}
req.buildDefault();
// 根据工作台类型和单位类型查询角色分组
List<SaasRoleGroup> roleGroup = new ArrayList<>();
// 如果传入了角色id就以传入的角色id为准
if (CollectionUtils.isEmpty(req.getIds()) && (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode()))) {
roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder()
.ids(req.getSassRoleGroupIds())
.workspaceTypeCode(req.getWorkspaceTypeCode())
.ouTypeCode(req.getOuTypeCode())
.build());
QuerySaasRoleGroupReq groupReq = new QuerySaasRoleGroupReq();
groupReq.setIds(req.getSassRoleGroupIds());
if (CollectionUtils.isEmpty(req.getSassRoleGroupIds())) {
groupReq.setWorkspaceTypeCode(req.getWorkspaceTypeCode());
groupReq.setOuTypeCode(req.getOuTypeCode());
groupReq.setWorkspaceIds(req.getWorkspaceId());
groupReq.setOuIds(req.getOuId());
}
roleGroup = saasRoleGroupDao.query(groupReq);
if (CollectionUtils.isEmpty(roleGroup)) {
return new ArrayList<>();
}