MIS系统的权限又多又复杂,很多人是在用户数据表中设置多个字段,每个字段代表一个权限,或者设置一个字符串,不同的字符组合表示用户的不同权限。简单一点的,可以预先设置几个角色,根据角色来行使预设权限,但又不够灵活。现介绍一个简单灵活的权限分配控制的方法,并无高深见解,只是很多人忽略了它。如果您正在设计权限控制模式,不妨接着往下看。
此方法非常简洁,扩充性很好。
仅用一个 integer 字段即可保存全部权限组合。
另外每个权限用一个整型表示
如:商品查看权限用 1 ;
商品更改权限用 2 ;
商品完全浏览权限用 4 ;
订单查看权限用 8 ;
订单更改权限用 16 ;更多权限…… 32,64,128 ……
给用户分配权限时,只需把用户获得的权限值累加就可以了。
应用时使用“与”操作来识别哪个用户是否拥有相应的权限。
例子
if 用户的权限总值 and 当前操作所需的权限 = 当前操作所需的权限 then
showmessage('有权限')
else
showmessage('无权限');
运用此法,可简单的设计出复杂的权限系统。
这篇文章实为一抛砖引玉之作,如您有更好的权限控制系统设计思路,欢迎来信讨论: ufo2003@126.com
如需转载,请保持文章完整。