Explorar el Código

fix 修复 菜单与部门 未做角色状态判断

疯狂的狮子Li hace 10 meses
padre
commit
1feb2a3861

+ 6 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java

@@ -30,7 +30,9 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo> {
      */
     default String buildDeptByRoleSql(Long roleId) {
         return """
-                select dept_id from sys_role_dept where role_id = %d
+                select srd.dept_id from sys_role_dept srd
+                    left join sys_role sr on sr.role_id = srd.role_id
+                    where srd.role_id = %d and sr.status = 0
             """.formatted(roleId);
     }
 
@@ -47,7 +49,9 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo> {
     default String buildParentDeptByRoleSql(Long roleId) {
         return """
                 select parent_id from sys_dept where dept_id in (
-                    select dept_id from sys_role_dept where role_id = %d
+                    select srd.dept_id from sys_role_dept srd
+                        left join sys_role sr on sr.role_id = srd.role_id
+                        where srd.role_id = %d and sr.status = 0
                 )
             """.formatted(roleId);
     }

+ 9 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java

@@ -32,7 +32,9 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
     default String buildMenuByUserSql(Long userId) {
         return """
                 select menu_id from sys_role_menu where role_id in (
-                    select role_id from sys_user_role where user_id = %d
+                    select sur.role_id from sys_user_role sur
+                        left join sys_role sr on sr.role_id = sur.role_id
+                        where sur.user_id = %d and sr.status = 0
                 )
             """.formatted(userId);
     }
@@ -50,7 +52,9 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
      */
     default String buildMenuByRoleSql(Long roleId) {
         return """
-                select menu_id from sys_role_menu where role_id = %d
+                select srm.menu_id from sys_role_menu srm
+                    left join sys_role sr on sr.role_id = srm.role_id
+                    where srm.role_id = %d and sr.status = 0
             """.formatted(roleId);
     }
 
@@ -68,7 +72,9 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
     default String buildParentMenuByRoleSql(Long roleId) {
         return """
                 select parent_id from sys_menu where menu_id in (
-                    select menu_id from sys_role_menu where role_id = %d
+                    select srm.menu_id from sys_role_menu srm
+                        left join sys_role sr on sr.role_id = srm.role_id
+                        where srm.role_id = %d and sr.status = 0
                 )
             """.formatted(roleId);
     }