写在开始前~~~一般的菜单按钮配置与权限控制
作者:互联网
简单的翻了翻spring(Shiro)和tp6一些项目的菜单权限配置及权限验证相关模块。
菜单按钮
基本步骤是根据系统结构设置目录,根据模块功能设置相应下属菜单及菜单页对应的按钮。把这些分类加入数据库保存,有id,pid,name,url,权限标记等。
给角色分配权限就是将系统内已配置好的目录菜单按钮按照树型结构显示出来,根据实际选中相关项,将按钮作为叶节点,和上层菜单目录id一起存入角色权限表。查看编辑的时候再原路返回显示。
权限控制
要么在基类控制器那里统一鉴权,要么在每个控制器或action里鉴权。前者省事整齐划一,后者灵活繁琐。
统一鉴权一般使用的是将controller和action结合,然后再与数据库的权限标记比对,这里也可以不设置标记,统一设置url,控制器获取request的url再直接与配置的url比对。
在每个控制器或action分别鉴权,则是每个action有配置的权限标记,request到来时判断角色权限里是否分配有这个标记。
数据权限
数据权限按说是最复杂的,每个社会或行业自有国情在。公司结构复杂,跨子公司,跨部门,跨业务。
1、 '全部数据权限'
2、'本部门及以下数据权限',
3、 '本部门数据权限',
4、 '自定数据权限',
5、 '仅本人数据权限'
每个权限对应不同范围数据,除了这种按照部门划分数据权限,其实还有地域性,行业性等其他属性,比如A能看这个省市的,B能看另一省市的。
按照部门划分,则企业内部人员必然以总体-部门-人员的结构建档再分划归档,衍生出部门,部门人员,头衔职位职称等表。根据所在部门及头衔职位职称来判断数据的权限。
粒度的大小粗细根据实际情况。
标签:菜单,url,按钮,action,权限,鉴权 来源: https://www.cnblogs.com/thingk/p/16408410.html