From a195a18959d20590b65d6c34c5622de0b2e6839f Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期二, 24 八月 2021 15:58:47 +0800 Subject: [PATCH] 修改时检查用户数据权限范围 --- src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java | 30 +++++++++++++++++++++++++++--- 1 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java index 5dc8e74..0cc2c3f 100644 --- a/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java @@ -8,12 +8,15 @@ import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.text.Convert; -import com.ruoyi.common.exception.CustomException; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.framework.aspectj.lang.annotation.DataScope; import com.ruoyi.framework.web.domain.TreeSelect; 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.mapper.SysDeptMapper; import com.ruoyi.project.system.mapper.SysRoleMapper; import com.ruoyi.project.system.service.ISysDeptService; @@ -172,6 +175,26 @@ } /** + * 鏍¢獙閮ㄩ棬鏄惁鏈夋暟鎹潈闄� + * + * @param deptId 閮ㄩ棬id + */ + @Override + public void checkDeptDataScope(Long deptId) + { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) + { + SysDept dept = new SysDept(); + dept.setDeptId(deptId); + List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + if (StringUtils.isEmpty(depts)) + { + throw new ServiceException("娌℃湁鏉冮檺璁块棶閮ㄩ棬鏁版嵁锛�"); + } + } + } + + /** * 鏂板淇濆瓨閮ㄩ棬淇℃伅 * * @param dept 閮ㄩ棬淇℃伅 @@ -184,7 +207,7 @@ // 濡傛灉鐖惰妭鐐逛笉涓烘甯哥姸鎬�,鍒欎笉鍏佽鏂板瀛愯妭鐐� if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) { - throw new CustomException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板"); + throw new ServiceException("閮ㄩ棬鍋滅敤锛屼笉鍏佽鏂板"); } dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); return deptMapper.insertDept(dept); @@ -209,7 +232,8 @@ updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); } int result = deptMapper.updateDept(dept); - if (UserConstants.DEPT_NORMAL.equals(dept.getStatus())) + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) + && !StringUtils.equals("0", dept.getAncestors())) { // 濡傛灉璇ラ儴闂ㄦ槸鍚敤鐘舵�侊紝鍒欏惎鐢ㄨ閮ㄩ棬鐨勬墍鏈変笂绾ч儴闂� updateParentDeptStatusNormal(dept); -- Gitblit v1.9.3