论坛首页 Java企业应用论坛

系统权限模块设计(ps:有图有真相!)

浏览 16935 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-01-25  
lym6520 写道
kyfxbl 写道
不给力,粒度太粗。比如A,B都能进入用户管理页面,但A能做删除和编辑操作,B只能编辑不能删除。

你这个模型实现不了。建议你参考一下RBAC模型

怎么不能做呢?我只要分配两个角色就可以了,比如角色rleA可以删除和编辑操作,roleB只能编辑,把这两个用户分别赋予A用户和B用户。


我知道你的意思,不是这个问题。你这个模型本身粒度太粗了。只有一个菜单,你总不能说编辑和删除它是2个菜单吧。

RBAC1级的模型,URL和操作都是分离的,然后URL还有树形级联关系。RBAC2,3级模型就更复杂了,不过对于一般的场景,1级的模型已经够用了。你这个模型,0级都算不上。
0 请登录后投票
   发表时间:2011-01-25  
kyfxbl 写道
lym6520 写道
kyfxbl 写道
不给力,粒度太粗。比如A,B都能进入用户管理页面,但A能做删除和编辑操作,B只能编辑不能删除。

你这个模型实现不了。建议你参考一下RBAC模型

怎么不能做呢?我只要分配两个角色就可以了,比如角色rleA可以删除和编辑操作,roleB只能编辑,把这两个用户分别赋予A用户和B用户。


我知道你的意思,不是这个问题。你这个模型本身粒度太粗了。只有一个菜单,你总不能说编辑和删除它是2个菜单吧。

RBAC1级的模型,URL和操作都是分离的,然后URL还有树形级联关系。RBAC2,3级模型就更复杂了,不过对于一般的场景,1级的模型已经够用了。你这个模型,0级都算不上。



kyfxbl说的对
0 请登录后投票
   发表时间:2011-01-25  
kyfxbl 写道
lym6520 写道
kyfxbl 写道
不给力,粒度太粗。比如A,B都能进入用户管理页面,但A能做删除和编辑操作,B只能编辑不能删除。

你这个模型实现不了。建议你参考一下RBAC模型

怎么不能做呢?我只要分配两个角色就可以了,比如角色rleA可以删除和编辑操作,roleB只能编辑,把这两个用户分别赋予A用户和B用户。


我知道你的意思,不是这个问题。你这个模型本身粒度太粗了。只有一个菜单,你总不能说编辑和删除它是2个菜单吧。

RBAC1级的模型,URL和操作都是分离的,然后URL还有树形级联关系。RBAC2,3级模型就更复杂了,不过对于一般的场景,1级的模型已经够用了。你这个模型,0级都算不上。


你可能误解了,菜单管理和权限表本质是一样的,你可以把它当做一张表。比如你可以不分配菜单给用户,但是菜单下的操作功能你可以分配给用户,只是用户有这个操作功能,没有提供用户操作入口而已。
0 请登录后投票
   发表时间:2011-01-26  
lym6520 写道
godymoon 写道
这个权限中的URL能把系统中的URL完全包含吗?还有对以查询字符串结尾的URL该如何处理?

是否包含系统的全部url取决于过滤器的配置,还有req.getServletPath()这个返回的是请求的部分URL,不会包含请求参数。

不是说过滤器,而是往权限表里插入url,这个要把系统的所有url都要插进去吧?如何保证url不会遗漏
0 请登录后投票
   发表时间:2011-01-26  
godymoon 写道
lym6520 写道
godymoon 写道
这个权限中的URL能把系统中的URL完全包含吗?还有对以查询字符串结尾的URL该如何处理?

是否包含系统的全部url取决于过滤器的配置,还有req.getServletPath()这个返回的是请求的部分URL,不会包含请求参数。

不是说过滤器,而是往权限表里插入url,这个要把系统的所有url都要插进去吧?如何保证url不会遗漏

不一定要存储系统所有的url,这个在开发初期就应该确定清楚,如果遗漏了哪些url,测试过程中就会提示无权限。
0 请登录后投票
   发表时间:2011-01-27  
kyfxbl 写道
不给力,粒度太粗。比如A,B都能进入用户管理页面,但A能做删除和编辑操作,B只能编辑不能删除。

你这个模型实现不了。建议你参考一下RBAC模型



十分同意kyfxbl 的观点,LZ如果把角色可以控制的资源类型仅仅设定为页面以后是会出以上问题的,粒度不够细化,参考RBAC模型把资源表重新设计一下,最好把用户组的功能也加上去

 

0 请登录后投票
   发表时间:2011-01-27  
以下是RBAC0的模型:


在我的系统权限模块设计中,除了用户跟角色是一对一关系外其他完全符合RBAC0模型,当然这要根据各自系统的特色来分析是否有必要给一个用户分配多个角色,这个在后期完全是可以扩展的。欢迎大家拍砖!
0 请登录后投票
   发表时间:2011-03-10   最后修改:2011-03-15
lym6520 写道
以下是RBAC0的模型:


在我的系统权限模块设计中,除了用户跟角色是一对一关系外其他完全符合RBAC0模型,当然这要根据各自系统的特色来分析是否有必要给一个用户分配多个角色,这个在后期完全是可以扩展的。欢迎大家拍砖!


此模型只是级别1的RBAC。而且用户与角色是多对多的关系是级别1的RBAC的核心。您的设计,和RBAC大相径庭,我的砖拍重了,但是是实话。你的设计,与RBAC相差十万八千里。
0 请登录后投票
   发表时间:2011-03-14  
求extjs书。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics