Dict.CN 在线词典, 英语学习, 在线翻译

都市淘沙者

荔枝FM Everyone can be host

统计

留言簿(23)

积分与排名

优秀学习网站

友情连接

阅读排行榜

评论排行榜

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

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

Segment 表中,有三个字段, segmentId segmentName segmentRight

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

  

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

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

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

     segmentId=4 segmentRight=8

     segmentId=5 segmentRight=16

 

     ......

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

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

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

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

            ......

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

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

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

 

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

 

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

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

 

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

 

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

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

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

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

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

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

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

MSN:yun15291li@hotmail.com

Email:ygyunguang@yahoo.com.cn

posted on 2006-05-29 16:02 都市淘沙者 阅读(531) 评论(0)  编辑  收藏 所属分类: VSS/SVN/Jira/Hudson/Sonar/TDD/UnitTest


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问