三种权限设计方案的归纳和比较

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三种权限设计方案的归纳和比较权限设计是很多系统重要的组成部分,主要用于控制功能和流程,本文将几种常见的权限设计方案(权限系统的名都是自己起的)的基本设计写出来,其中不恰当处还请大家指出,我们来讨论一下.1.等级权限系统这种权限系统在论坛中很常见,在这种系统中,权限级别如同官阶从低到高排列,每个用户拥有一个权限,其中设定了这个用户的权限等级,在用户需要执行操作前先查看其权限等级是否大于执行操作所需要的权限等级,是则进行操作。在等级权限系统中领域对象用户类User的基本属性如下:id//用户IDname//用户名领域对象权限类Privilege的基本属性如下:id//权限IDuserid//持有此权限的用户idlevel//用户的权限等级level的设置示例level对应可执行的功能0访问1可跟帖2可创建主贴3可删除主贴4可创建频道5可删除频道6可查看用户7可分配用户权限8可修改用户密码9可删除用户...使用中,执行一个操作比如创建主贴时,先从Session中取出用户,然后按其id查出其对应的权限等级,拿它和执行创建主贴所需要的等级(3)进行比较,高于则可进行创建主贴操作,否则报告权限不够.等级权限系统简单易用,在如论坛等刚性控制系统中使用很好,但不适用于需要限制权限的范围的场合。2.范围限制权限系统等级权限系统系统的缺点是控制范围过广,比如一个论坛中有很多子论坛,一个子论坛的分版主同时也能对另一个同等级分论坛的帖子进行控制,这在一定程度不合理,有越界的嫌疑,更好的做法是将版主权限控制在一版之内,这时我们可以采用范围限制权限系统.这种权限系统在项目管理系统中很常见.在等级权限系统中领域对象用户类User的基本属性如下:id//用户IDname//用户名领域对象项目类Project的基本属性如下:id//项目IDname//项目名领域对象权限类Privilege的基本属性如下:id//权限IDuserid//持有此权限的用户idprojectid//此权限对应的项目level//用户的权限等级其中,通过引入了新属性projectid,我们对权限的范围进行了有效限制,项目不同则权限等级再高也是无效,这样就起到了限制权限能力范围的作用.3.范围限制单项权限系统在上面两个权限系统中,权限高的自然能执行权限要求低的操作,这样做权力没有细分,在有些场合并不合理,比如即使是董事长不可直接操作人事部的招聘任务,他只对雇员去留有建议权.对于这样的场合我们需要使用范围限制单项权限系统.它的典型应用如工作流和OA系统。在范围限制单项权限系统中领域对象用户类User的基本属性如下:id//用户IDname//用户名领域对象项目类Project的基本属性如下:id//项目IDname//项目名领域对象权限类Privilege的基本属性如下:id//权限IDuserid//持有此权限的用户idprojectid//此权限对应的项目abilityid//权限控制能力id领域对象权限控制能力类ability的基本属性如下:id//控制能力IDitem//控制能力子项item的设置示例item对应可执行的功能0读1写2查3删...通过对权限能力的细分,用户权限的控制粒度更细了,对功能和流程就能有更精确的把握,适用于复杂的场合.以上三种权限系统没有优劣之分只有适用场合的区别,前面的粗略但易于操作,后面的精确但失之烦琐,在现实使用中我们应该根据场合选择合适的权限系统.

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功