权限设计

这次项目改版中 遇到权限设计的问题 因为对项目还不熟,再加上第一次做权限,就先做了个大概

拖来拖去

今天有了点想法

记录如下

(然后推荐一个在线逻辑图  https://www.processon.com 虽然访问速度比较慢,但还是蛮实用的)

权限设计_第1张图片

 

权限设计_第2张图片

 

------------------------------------------------------------------------------------------------------------------------------

最终还是选择了第一个逻辑图

先大体上说下当前项目

该项目里面

1、只有两级菜单,本来是有三级菜单的,但是后来将一级菜单下的业务菜单改成tab标签了(有许多蛮烦也是有由此而起的)

2、操作类型很少,主要就是访问数据和下载数据

3、对访问权限(一级菜单和二级菜单)基本上是没有规律可循的,完全是针对用户设置的

4、二级菜单权限不全是继承于一级菜单(及只要能看到一级菜单就能看到二级菜单) 

 

表结构设计

主要说下

1、权限表和二级菜单表里面的几个字段

权限表: IsSpecialPower int default(0) 0表示该权限是用来控制一级菜单的 1 表示用来控制一些需要权限控制的二级菜单的

权限表里面分 两种权限,一个是用来控制用户看到哪个一级菜单 一个是被我私下定义为特殊权限的,用来控制一些需要权限控制的二级菜单

二级菜单表:对应 NeedSpecialPower int defalut(0) 0表示该二级菜单权限继承于一级菜单,不需要特殊的权限许可 1需要特别的权限控制

2、关联

用户和权限关联 、权限和一级菜单关联、 权限和二级菜单中的部分关联

二级菜单中的 MenuGroupCode 对应着一级菜单表中的 MenuCode 字段

 

生成左侧菜单的取数据逻辑:

1、先取出该用户权限下能看到的一级菜单 (通过权限表和一级菜单表),以及不需要特殊权限控制的二级菜单

2、再取出需要特殊权限控制的二级菜单 先筛选出该用户的特殊权限,然后根据这些特殊权限找出相对应的二级菜单

3、二级菜单去重

4、返回一级菜单和二级菜单 

5、到前台页面处理 生成左侧菜单

 

但是角色权限这条逻辑线还是先保留着,万一往后用到着(批量管理用户)

所以在权限表里面保留着一个 UserOrRole的字段 用来标识是通过用户直接跟权限关联还是用户通过角色和权限关联

 

北京 2015-10-25 17:47 路过随笔补记

 

你可能感兴趣的:(权限设计)