完成角色的授权的功能

This commit is contained in:
YunaiV
2021-01-09 18:53:43 +08:00
parent ad1d1978d2
commit 2651f9bce3
16 changed files with 343 additions and 164 deletions

View File

@@ -1,10 +1,8 @@
package cn.iocoder.dashboard.modules.system.controller.permission;
import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuRespVO;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.*;
import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService;
@@ -15,6 +13,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Comparator;
import java.util.List;
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
@@ -30,8 +29,22 @@ public class SysMenuController {
@ApiOperation("获取菜单列表")
// @PreAuthorize("@ss.hasPermi('system:menu:list')")
@GetMapping("/list")
public CommonResult<List<SysMenuRespVO>> list(SysMenuListReqVO reqVO) {
return success(menuService.listMenus(reqVO));
public CommonResult<List<SysMenuRespVO>> listMenus(SysMenuListReqVO reqVO) {
List<SysMenuDO> list = menuService.listMenus(reqVO);
list.sort(Comparator.comparing(SysMenuDO::getSort));
return success(SysMenuConvert.INSTANCE.convertList(list));
}
@ApiOperation(value = "获取菜单精简信息列表", notes = "只包含被开启的菜单,主要用于前端的下拉选项")
@GetMapping("/list-all-simple")
public CommonResult<List<SysMenuSimpleRespVO>> listSimpleMenus() {
// 获得菜单列表,只要开启状态的
SysMenuListReqVO reqVO = new SysMenuListReqVO();
reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus());
List<SysMenuDO> list = menuService.listMenus(reqVO);
// 排序后,返回个诶前端
list.sort(Comparator.comparing(SysMenuDO::getSort));
return success(SysMenuConvert.INSTANCE.convertList02(list));
}
@ApiOperation("获取菜单信息")
@@ -42,17 +55,6 @@ public class SysMenuController {
return success(SysMenuConvert.INSTANCE.convert(menu));
}
// /**
// * 获取菜单下拉树列表
// */
// @GetMapping("/treeselect")
// public AjaxResult treeselect(SysMenu menu) {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// Long userId = loginUser.getUser().getUserId();
// List<SysMenu> menus = menuService.selectMenuList(menu, userId);
// return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
// }
//
// /**
// * 加载对应角色菜单列表树
// */

View File

@@ -0,0 +1,62 @@
package cn.iocoder.dashboard.modules.system.controller.permission;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.permission.SysPermissionAssignRoleMenuReqVO;
import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Set;
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
/**
* 权限 Controller提供赋予用户、角色的权限的 API 接口
*
* @author 芋道源码
*/
@Api(tags = "权限 API")
@RestController
@RequestMapping("/system/permission")
public class SysPermissionController {
@Resource
private SysPermissionService permissionService;
@ApiOperation("获得角色拥有的菜单编号")
@GetMapping("/list-role-resources")
@ApiImplicitParam(name = "roleId", value = "角色编号", required = true)
// @RequiresPermissions("system:permission:assign-role-menu")
public CommonResult<Set<Long>> listRoleMenus(Long roleId) {
return success(permissionService.listRoleMenuIds(roleId));
}
@PostMapping("/assign-role-menu")
@ApiOperation("赋予角色菜单")
// @RequiresPermissions("system:permission:assign-role-resource")
public CommonResult<Boolean> assignRoleMenu(@Validated @RequestBody SysPermissionAssignRoleMenuReqVO reqVO) {
permissionService.assignRoleMenu(reqVO.getRoleId(), reqVO.getMenuIds());
return success(true);
}
// @GetMapping("/list-admin-roles")
// @ApiOperation("获得管理员拥有的角色编号列表")
//// @RequiresPermissions("system:permission:assign-admin-role")
// @ApiImplicitParam(name = "adminId", value = "管理员编号", required = true)
// public CommonResult<Set<Integer>> listAdminRoles(Integer adminId) {
// return success(permissionManager.listAdminRoles(adminId));
// }
// @PostMapping("/assign-admin-role")
// @ApiOperation("赋予用户角色")
//// @RequiresPermissions("system:permission:assign-admin-role")
// public CommonResult<Boolean> assignAdminRole(PermissionAssignAdminRoleDTO assignAdminRoleDTO) {
// permissionManager.assignAdminRole(assignAdminRoleDTO);
// return success(true);
// }
}

View File

@@ -0,0 +1,24 @@
package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("菜单精简信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SysMenuSimpleRespVO {
@ApiModelProperty(value = "菜单编号", required = true, example = "1024")
private Integer id;
@ApiModelProperty(value = "菜单名称", required = true, example = "芋道")
private String name;
@ApiModelProperty(value = "父菜单 ID", required = true, example = "1024")
private Long parentId;
}

View File

@@ -0,0 +1,22 @@
package cn.iocoder.dashboard.modules.system.controller.permission.vo.permission;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Collections;
import java.util.Set;
@ApiModel("赋予角色菜单 Request VO")
@Data
public class SysPermissionAssignRoleMenuReqVO {
@ApiModelProperty(value = "角色名", required = true, example = "1")
@NotNull(message = "角色编号不能为空")
private Long roleId;
@ApiModelProperty(value = "菜单编号列表", example = "1,3,5")
private Set<Long> menuIds = Collections.emptySet(); // 兜底
}