diff --git a/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html b/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html index 880f7c80..4e7f7322 100644 --- a/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html +++ b/ruoyi-admin/src/main/resources/templates/system/role/dataScope.html @@ -27,6 +27,7 @@ + 特殊情况下,设置为“自定数据权限” diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index f9224e02..72b6c512 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -39,6 +39,11 @@ public class DataScopeAspect */ public static final String DATA_SCOPE_DEPT = "3"; + /** + * 部门及以下数据权限 + */ + public static final String DATA_SCOPE_DEPT_AND_CHILD = "4"; + /** * 数据权限过滤关键字 */ @@ -105,6 +110,12 @@ public class DataScopeAspect { sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", alias, user.getDeptId())); } + else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) + { + sqlString.append(StringUtils.format( + " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or parent_id= {} )", alias, + user.getDeptId(), user.getDeptId())); + } } if (StringUtils.isNotBlank(sqlString.toString())) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index 50fbed54..82c60092 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -80,7 +80,6 @@ public class GlobalExceptionHandler public Object businessException(HttpServletRequest request, BusinessException e) { log.error(e.getMessage(), e); - if (ServletUtils.isAjaxRequest(request)) { return AjaxResult.error(e.getMessage());