云广

云广的blog
随笔 - 5, 评论 - 12 , 引用 - 15

根据部门判断进入版块的权限

Segment表中,有三个字段,segmentIdsegmentNamesegmentRight

分别表示权限序号(从1开始),模块名,访问权值。其中segmentRight=2segmentId-1次方,

  

     segmentId=1segmentRight=1 (对应二进制1

     segmentId=2segmentRight=2(对应二进制10

     segmentId=3segmentRight=4(对应二进制100

     segmentId=4segmentRight=8

     segmentId=5segmentRight=16

 

     ......

     相当于 segmentRight 的第0位代表segmentId=1的模块访问权限,

            segmentRight 的第1位代表segmentId=2的模块访问权限,

            segmentRight 的第2位代表segmentId=3的模块访问权限,

            segmentRight 的第3位代表segmentId=4的模块访问权限,

            ......

     而在部门表里的Segment=上面segmentRight之和,比如,Segment=7,其二进制为0111

则表示该部门对segmentId123的模块具有访问权。换句话说,测试部门表里的Segment

字段的各个二进制位,即可知该部门是否具有对某模块的访问权。

 

    Segment表进行单独管理,增、删、改操作。

 

    对部门表的管理,增加权限的设置,即显示已有的可操作模块,操作者进行选择,然后

将选中的各模块的 segmentRight 值加起来,赋予部门表里的Segment字段。

 

    访问模块的权限判断流程如下:

 

    用户点击某模块-->Segment表中通过segmentName(模块名)取出该模块的segmentRight值,

                     同时从部门表中取出该部门的segment

                  -->segment值和segmentRight值进行“位与”操作,即 segment & segmentRight,

                  -->如果“位与”的结果等于segmentRight,则该部门具有操作该模块的权限,

                     使用户进入该模块的操作。

                  -->如果“位与”的结果等于0,则拒绝该用户进入该模块的操作。

相关代码以及讨论者请按如下方式联系:

MSN:yun15291li@hotmail.com

Email:ygyunguang@yahoo.com.cn

发表于 2004年12月18日 2:00

评论

# re:根据部门判断进入版块的权限

^_~,pretty good!18showsseeoo
2005/4/20 17:02 | 流变仪

# re:根据部门判断进入版块的权限

^_~,pretty good!csharpsseeoo
2005/5/17 18:37 | 温湿度控制器

# re:根据部门判断进入版块的权限

根据部门判断进入版块的权限ooeess
2005/6/16 19:14 | 一氧化碳测定仪

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号