数据权限
数据权限和菜单权限不一样
菜单权限:
根据不同的性质的用户,显示不同的菜单。
数据权限:
设置权限,不同的用户只能访问本用户的数据,或者本部门的数据。当然对于特殊的领导可以跨部门访问数据。这些都是可以设置权限。
此代码的数据权限是基于若依框架,基于部门权限的简单数据权限设置。
实现功能
本系统针对多个幼儿园,不同的幼儿园园长,只能增删查改属于本幼儿园的儿童信息。但是所有的儿童信息都储存在同一个表中。此时就需要对不同的幼儿园园长设置数据权限。
实现步骤
- 在设置儿童信息表时,添加一个字段部门id(dept_id bigint 20) ,这将作为数据过滤的条件。
- 在MyBaits中的Mapper文件中的select语句中添加(数据过滤范围)
<sql id="selectKinChildrenInfoVo">
select U.CHILDREN_ID, U.CHILDREN_NAME, U.SEX, BIRTHDAY, U.REGION_CODE, U.HOME_ADDRESS, U.NATION_ID, U.PARENT_NAME, U.PARENT_PHONE ,U.dept_id from kin_children_info U
</sql>
<select id="selectKinChildrenInfoList" parameterType="KinChildrenInfo" resultMap="KinChildrenInfoResult">
<include refid="selectKinChildrenInfoVo"/>
<!-- 数据范围过滤 -->
${params.dataScope}
<if test="childrenName != null and childrenName != ''"> and CHILDREN_NAME like concat('%', #{childrenName}, '%')</if>
<if test="SEX != null and SEX != ''"> and SEX = #{SEX}</if>
<if test="BIRTHDAY != null "> and BIRTHDAY = #{BIRTHDAY}</if>
<if test="regionCode != null and regionCode != ''"> and REGION_CODE = #{regionCode}</if>
<if test="homeAddress != null and homeAddress != ''"> and HOME_ADDRESS = #{homeAddress}</if>
<if test="nationId != null "> and NATION_ID = #{nationId}</if>
<if