9
回答
细化权限如何实现
华为云实践训练营,热门技术免费实践!>>>   

用户 - 角色 - 菜单 - 按钮(详细功能)上的设计是怎么做的。
主要是 页面上的详细功能需要权限验证,当如果实现。数据库里怎么实现。

  菜单根据角色显示,菜单点开的页面,也根据角色不同显示,但是角色的ID目前是未知的,怎么做到菜单点开,显示的页面上的按钮多少不同。
<无标签>
举报
共有9个答案 最后回答: 7年前

这个应该简单吧,权限控制里的开关项是最好做的

最难的是范围控制,例如某个角色用户只能看某个地区的数据,这样的权限真的很麻烦。

给【角色和菜单的关系表】里面加一个权限级别可以不,分为【查】,【查,删】,【增、改、查】,【ALL】

                                                                   Q             QD               AUQ           ALL

就怕有些事情不是这么简单的。再想想吧。

功能按钮的名称有一些是通用的,但在各个模块中action却不同,所以通用的按钮可以进行编码,另外需要一个表来记录各菜单中的按钮的属性,比如url,名称,等等。在用户对应角色表中,增加一个字段,记录所有的有权限的按钮的编码。

比如找一些通用的按钮(button):增加 A1,修改A2,查询A3,提交 A4,取消A5,同意A6,拒绝A7等等按钮

新增一个表,记录这些按钮在不同模块的属性:

nodeID

buttonCd

buttonNm

buttonAction

然后在CGMS_SYS_Role2User中增加一个比较大的字符字段:

button_list: 就记录A1,A2,A4,A7

然后通过sql很容易找到这些按钮在当前模块中属性。

然后就可以在页面上面展示这些不同的按钮。

对于特殊的按钮,同样进行编码就行了。

不知道你说的细化权限 是指   记录级的 还是 操作范围级的。

可以参考linux的全线设计嗦,我现在的权限后台数据 对于 数据记录的操作权限 和   操作范围的权限是分开的。

操作范围直接int定义,采用  位与 运算,速度还是ok的。    数据记录的操作  在增加记录的时候,指定角色或者用户访问。

根据六楼的内容,和同事的建议,最终得出下面的表结构,望大家指教。

此图好像不妥,最后换成这个:

此图也不妥,再换:

加一个按钮表,把每一个按钮记录进去,并记录对应的显示权限。

加一个权限表,记录没一个角色对应的权限。

根据工号查角色,然后根据角色查对应的权限,然后根据权限查可以显示的按钮。

顶部