Просмотр исходного кода

角色减少权限,该角色的下级角色的可见&可选权限将相应减少

v_HuilingDeng 3 лет назад
Родитель
Сommit
20b7bfe73b

+ 7 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/mapper/UserRoleMapper.java

@@ -28,6 +28,13 @@ public interface UserRoleMapper extends BaseMapper<UserRole> {
                                                @Param("roleCode") String roleCode,
                                                @Param("roleLevel")Integer roleLevel);
 
+    /**
+     * 查询角色树(启用中)
+     * @param role
+     * @return
+     */
+    List<UserRole> listRoleTreeEnable(@Param("role") UserRole role);
+
     /**
      * 查询角色树
      * @param role

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/UserManagerServiceImpl.java

@@ -143,7 +143,7 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
         UserRole role = roleManagerService.getRoleByCode(user.getRoleCode());
 
         //1-查询当前角色以及其下的所有角色
-        List<UserRole> userRoleList = userRoleMapper.listRoleTree(role);
+        List<UserRole> userRoleList = userRoleMapper.listRoleTreeEnable(role);
 
         //构造出参
         List<ListRoleTreeRes.RoleBean> roleBeanList = PojoConverterUtils.copyList(userRoleList, ListRoleTreeRes.RoleBean.class);

+ 25 - 1
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/UserRoleMapper.xml

@@ -59,7 +59,7 @@
         </where>
     </select>
 
-    <select id="listRoleTree" resultType="com.abi.qms.platform.dao.entity.UserRole">
+    <select id="listRoleTreeEnable" resultType="com.abi.qms.platform.dao.entity.UserRole">
         select r.*
         from user_role r
         <where>
@@ -83,6 +83,30 @@
         </where>
     </select>
 
+    <select id="listRoleTree" resultType="com.abi.qms.platform.dao.entity.UserRole">
+        select r.*
+        from user_role r
+        <where>
+            <!-- 仅可以查看当前角色树下的角色 -->
+            <if test="role.roleLevel==1">
+                and r.l1_role_code=#{role.roleCode}
+            </if>
+            <if test="role.roleLevel==2">
+                and r.l2_role_code=#{role.roleCode}
+            </if>
+            <if test="role.roleLevel==3">
+                and r.l3_role_code=#{role.roleCode}
+            </if>
+            <if test="role.roleLevel==4">
+                and r.l4_role_code=#{role.roleCode}
+            </if>
+            <if test="role.roleLevel==5">
+                and r.l5_role_code=#{role.roleCode}
+            </if>
+            and r.is_delete=0
+        </where>
+    </select>
+
     <select id="countList" resultType="long">
         select IFNULL(count(distinct user_id),0) as user_count
         from user_mapping_info_role