我想使用RBAC来做权限管理,但是觉得实现起来非常麻烦,不知道是不是我对RBAC的理解有问题?
我的需求是这样的:
系统中有4种类型的用户(或4个角色,不知道这样对不对?)
-
guest (游客)
-
register (注册会员)
-
mod (版主)
-
admin (管理员)
现在的主要问题在于,“register”类型的用户的权限是根据它的积分来判断的
比如说:
积分>=10 可以创建帖子
积分>=400 可以评论帖子
.......
“mod”有所有“register”的权限,同时有额外的权限(比如说置顶帖子),同时“mod”的权限不受积分限制
“admin“有更多的权限。
按照RBAC,我觉得实现起来很复杂,
首先create operation:
[b]createPost[/b] 其中有业务规则 bizrules=”积分>=10"
[b]createComment[/b] 业务规则 bizrules="积分>400"
createRole:
[b]register[/b] 将 createPost和createComment添加到register中去,
[b]mod[/b] 如果mod继承于register的话,这个时候业务规则实际上不满足需求,必然要求 bizrules= ”积分>=10 || 会员是mod"
如果是admin的话,那规则就的变成 bizrules= ”积分>=10 || 会员是mod || 会员是admin"
我觉得如果这样实现起来,一点不方便啊,还不如利用类似于discuz论坛中的用户组的表格形式来实现呢。
不知道大家是怎么考虑的?能否指点一二?