From f46b1bbebd55e2eb55943ca9354959c36563c4e5 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Wed, 29 May 2024 14:48:03 +0800
Subject: [PATCH] 限制用户操作数据权限范围
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index cde75c8..81e1f8c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -122,7 +122,7 @@
* @return 选中角色ID列表
*/
@Override
- public List<Integer> selectRoleListByUserId(Long userId)
+ public List<Long> selectRoleListByUserId(Long userId)
{
return roleMapper.selectRoleListByUserId(userId);
}
@@ -146,7 +146,7 @@
* @return 结果
*/
@Override
- public String checkRoleNameUnique(SysRole role)
+ public boolean checkRoleNameUnique(SysRole role)
{
Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName());
@@ -164,7 +164,7 @@
* @return 结果
*/
@Override
- public String checkRoleKeyUnique(SysRole role)
+ public boolean checkRoleKeyUnique(SysRole role)
{
Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId();
SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey());
@@ -192,19 +192,22 @@
/**
* 校验角色是否有数据权限
*
- * @param roleId 角色id
+ * @param roleIds 角色id
*/
@Override
- public void checkRoleDataScope(Long roleId)
+ public void checkRoleDataScope(Long... roleIds)
{
if (!SysUser.isAdmin(SecurityUtils.getUserId()))
{
- SysRole role = new SysRole();
- role.setRoleId(roleId);
- List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
- if (StringUtils.isEmpty(roles))
+ for (Long roleId : roleIds)
{
- throw new ServiceException("没有权限访问角色数据!");
+ SysRole role = new SysRole();
+ role.setRoleId(roleId);
+ List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
+ if (StringUtils.isEmpty(roles))
+ {
+ throw new ServiceException("没有权限访问角色数据!");
+ }
}
}
}
@@ -361,6 +364,7 @@
for (Long roleId : roleIds)
{
checkRoleAllowed(new SysRole(roleId));
+ checkRoleDataScope(roleId);
SysRole role = selectRoleById(roleId);
if (countUserRoleByRoleId(roleId) > 0)
{
@@ -403,7 +407,7 @@
* 批量选择授权用户角色
*
* @param roleId 角色ID
- * @param userIds 需要删除的用户数据ID
+ * @param userIds 需要授权的用户数据ID
* @return 结果
*/
@Override
--
Gitblit v1.9.2