From a36dc6635f92b1a6a5ea43c801f028dea08a7f0b Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期日, 21 八月 2022 22:44:46 +0800 Subject: [PATCH] 优化多角色数据权限匹配规则 --- src/main/java/com/ruoyi/project/system/controller/SysRoleController.java | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/controller/SysRoleController.java b/src/main/java/com/ruoyi/project/system/controller/SysRoleController.java index b98910e..7bdd909 100644 --- a/src/main/java/com/ruoyi/project/system/controller/SysRoleController.java +++ b/src/main/java/com/ruoyi/project/system/controller/SysRoleController.java @@ -24,9 +24,11 @@ import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; +import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysRole; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.SysUserRole; +import com.ruoyi.project.system.service.ISysDeptService; import com.ruoyi.project.system.service.ISysRoleService; import com.ruoyi.project.system.service.ISysUserService; @@ -50,6 +52,9 @@ @Autowired private ISysUserService userService; + + @Autowired + private ISysDeptService deptService; @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") @@ -111,6 +116,7 @@ public AjaxResult edit(@Validated @RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { return AjaxResult.error("淇敼瑙掕壊'" + role.getRoleName() + "'澶辫触锛岃鑹插悕绉板凡瀛樺湪"); @@ -145,6 +151,7 @@ public AjaxResult dataScope(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); return toAjax(roleService.authDataScope(role)); } @@ -157,6 +164,7 @@ public AjaxResult changeStatus(@RequestBody SysRole role) { roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); role.setUpdateBy(getUsername()); return toAjax(roleService.updateRoleStatus(role)); } @@ -236,6 +244,20 @@ @PutMapping("/authUser/selectAll") public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds) { + roleService.checkRoleDataScope(roleId); return toAjax(roleService.insertAuthUsers(roleId, userIds)); } -} \ No newline at end of file + + /** + * 鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛� + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping(value = "/deptTree/{roleId}") + public AjaxResult deptTree(@PathVariable("roleId") Long roleId) + { + AjaxResult ajax = AjaxResult.success(); + ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); + ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return ajax; + } +} -- Gitblit v1.9.3