mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【permission】重新整理角色绑定权限的响应结果
parent
cea2772e9a
commit
b25f0527cc
|
@ -1,12 +1,16 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleBindPermissionRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.response.RoleBindPermissionResponse;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -33,9 +37,25 @@ public class PermissionAssignController {
|
|||
* @author fengshuonan
|
||||
* @since 2023/6/12 21:23
|
||||
*/
|
||||
@GetResource(name = "获取所有角色列表", path = "/sysRole/getList")
|
||||
public ResponseData<List<SysRole>> getList(SysRoleRequest sysRoleRequest) {
|
||||
@GetResource(name = "获取所有角色列表", path = "/permission/getRoleList")
|
||||
public ResponseData<List<SysRole>> getRoleList(SysRoleRequest sysRoleRequest) {
|
||||
return new SuccessResponseData<>(sysRoleService.findList(sysRoleRequest));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取角色绑定的权限列表
|
||||
* <p>
|
||||
* 角色绑定的权限列表返回的是一个树形结构:
|
||||
* 第一层是应用,第二层是应用下的菜单,第3层是菜单下的菜单功能
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/12 21:23
|
||||
*/
|
||||
@GetResource(name = "获取角色绑定的权限列表", path = "/permission/getRoleBindPermission")
|
||||
public ResponseData<RoleBindPermissionResponse> getRoleBindPermission(@Validated(BaseRequest.detail.class) RoleBindPermissionRequest roleBindPermissionRequest) {
|
||||
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.base.ReadableEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 节点类型:1-应用,2-菜单,3-功能,-1-所有权限
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/13 14:19
|
||||
*/
|
||||
@Getter
|
||||
public enum PermissionNodeTypeEnum implements ReadableEnum<PermissionNodeTypeEnum> {
|
||||
|
||||
/**
|
||||
* 应用
|
||||
*/
|
||||
APP(1, "应用"),
|
||||
|
||||
/**
|
||||
* 菜单
|
||||
*/
|
||||
MENU(2, "菜单"),
|
||||
|
||||
/**
|
||||
* 功能
|
||||
*/
|
||||
OPTIONS(3, "功能"),
|
||||
|
||||
/**
|
||||
* 所有权限
|
||||
*/
|
||||
TOTAL(-1, "所有权限");
|
||||
|
||||
private final Integer code;
|
||||
|
||||
private final String message;
|
||||
|
||||
PermissionNodeTypeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getKey() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getName() {
|
||||
return this.message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PermissionNodeTypeEnum parseToEnum(String originValue) {
|
||||
if (ObjectUtil.isEmpty(originValue)) {
|
||||
return null;
|
||||
}
|
||||
for (PermissionNodeTypeEnum value : PermissionNodeTypeEnum.values()) {
|
||||
if (value.code.equals(Convert.toInt(originValue))) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums.exception;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums.exception;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums.exception;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums.exception;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.enums;
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.enums.exception;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -46,7 +46,7 @@ public class RoleBindPermissionRequest extends BaseRequest {
|
|||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@NotNull(message = "角色id不能为空", groups = roleBindPermission.class)
|
||||
@NotNull(message = "角色id不能为空", groups = {roleBindPermission.class, detail.class})
|
||||
@ChineseDescription("角色id")
|
||||
private Long roleId;
|
||||
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.sys.modular.role.pojo.response;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 角色绑定权限界面的响应封装
|
||||
* <p>
|
||||
* 本结构是个树形结构,第1层级是应用,第2层级是应用下的菜单(菜单只显示最子节点),第3层级是菜单下的功能options
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/13 13:54
|
||||
*/
|
||||
@Data
|
||||
public class RoleBindPermissionItem implements AbstractTreeNode<RoleBindPermissionItem> {
|
||||
|
||||
/**
|
||||
* 节点ID,可以是菜单id和按钮id
|
||||
*/
|
||||
@ChineseDescription("节点ID")
|
||||
private Long nodeId;
|
||||
|
||||
/**
|
||||
* 节点父ID
|
||||
*/
|
||||
@ChineseDescription("节点父ID")
|
||||
private Long nodeParentId;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
*/
|
||||
@ChineseDescription("节点名称")
|
||||
private String nodeName;
|
||||
|
||||
/**
|
||||
* 节点编码
|
||||
*/
|
||||
@ChineseDescription("节点编码")
|
||||
private String nodeCode;
|
||||
|
||||
/**
|
||||
* 节点类型:1-应用,2-菜单,3-功能,-1-所有权限
|
||||
*/
|
||||
@ChineseDescription("节点类型:1-应用,2-菜单,3-功能,-1-所有权限")
|
||||
private Integer permissionNodeType;
|
||||
|
||||
/**
|
||||
* 是否选择(已拥有的是true)
|
||||
*/
|
||||
@ChineseDescription("是否选择(已拥有的是true)")
|
||||
private Boolean checked;
|
||||
|
||||
/**
|
||||
* 子节点集合
|
||||
*/
|
||||
@ChineseDescription("子节点集合")
|
||||
private List<RoleBindPermissionItem> children;
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
if (this.nodeId != null) {
|
||||
return this.nodeId.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeParentId() {
|
||||
if (this.nodeParentId != null) {
|
||||
return this.nodeParentId.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChildrenNodes(List<RoleBindPermissionItem> childrenNodes) {
|
||||
this.children = childrenNodes;
|
||||
}
|
||||
|
||||
}
|
|
@ -25,79 +25,37 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.pojo.response;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.base.AbstractTreeNode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 角色绑定权限界面的响应封装
|
||||
* <p>
|
||||
* 本结构是个树形结构,第1层级是应用,第2层级是应用下的菜单(菜单只显示最子节点),第3层级是菜单下的功能options
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/13 13:54
|
||||
*/
|
||||
@Data
|
||||
public class RoleBindPermissionResponse implements AbstractTreeNode<RoleBindPermissionResponse> {
|
||||
public class RoleBindPermissionResponse {
|
||||
|
||||
/**
|
||||
* 节点ID,可以是菜单id和按钮id
|
||||
* 是否已经全选了所有权限
|
||||
*/
|
||||
@ChineseDescription("节点ID")
|
||||
private Long nodeId;
|
||||
@ChineseDescription("是否已经全选了所有权限")
|
||||
private Boolean totalSelectFlag;
|
||||
|
||||
/**
|
||||
* 节点父ID
|
||||
* 节点类型:1-应用,2-菜单,3-功能,-1-所有权限
|
||||
*/
|
||||
@ChineseDescription("节点父ID")
|
||||
private Long nodeParentId;
|
||||
@ChineseDescription("节点类型:1-应用,2-菜单,3-功能,-1-所有权限")
|
||||
private Integer permissionNodeType = -1;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
* 应用权限列表
|
||||
* <p>
|
||||
* 应用下边是菜单,菜单下边是功能
|
||||
*/
|
||||
@ChineseDescription("节点名称")
|
||||
private String nodeName;
|
||||
|
||||
/**
|
||||
* 节点编码
|
||||
*/
|
||||
@ChineseDescription("节点编码")
|
||||
private String nodeCode;
|
||||
|
||||
/**
|
||||
* 是否选择(已拥有的是true)
|
||||
*/
|
||||
@ChineseDescription("是否选择(已拥有的是true)")
|
||||
private Boolean checked;
|
||||
|
||||
/**
|
||||
* 子节点集合
|
||||
*/
|
||||
@ChineseDescription("子节点集合")
|
||||
private List<RoleBindPermissionResponse> children;
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
if (this.nodeId != null) {
|
||||
return this.nodeId.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeParentId() {
|
||||
if (this.nodeParentId != null) {
|
||||
return this.nodeParentId.toString();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setChildrenNodes(List<RoleBindPermissionResponse> childrenNodes) {
|
||||
this.children = childrenNodes;
|
||||
}
|
||||
@ChineseDescription("应用权限列表")
|
||||
private List<RoleBindPermissionItem> appPermissionList;
|
||||
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleDataScope;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleDataScopeExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleDataScopeExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleDataScopeMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleDataScopeService;
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenuOptions;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleMenuOptionsExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleMenuOptionsExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMenuOptionsMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleMenuOptionsRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuOptionsService;
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleMenu;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleMenuExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMenuMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleMenuRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuService;
|
||||
|
|
|
@ -8,7 +8,7 @@ import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
|||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleResource;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleResourceExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleResourceExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleResourceMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleResourceRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleResourceService;
|
||||
|
|
|
@ -13,7 +13,7 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
|||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.SysRoleExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
|
||||
|
|
Loading…
Reference in New Issue