Vincent Thinking

All about Vincent's work and life

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 183 评论 :: 0 Trackbacks
对于每个系统来说,权限都是一个很重要的组成部分,贯穿于整个系统功能,甚至包括数据。RBAC是一个很好的模型,对于复杂的处理更多的还是和业务紧密联系在一起,所以对于组件形式的RBAC产品还很难做到的。 对一个用户来说,权限主要包括2个部分,data和action,其组合形式对我们来说就是一个view,每个权限对应一个相应的view。在这里我用三维的坐标来思考,data和action是相应的x,y轴,不同的data,action组成一个业务视图,从三维的角度来看是一个2维的的平面,我们的系统功能也就是由不同的平面来做成的。 权限可以看作z轴,view在不同的权限上会有不同的表现形式,展现不同的数据,不同的操作。这样权限,数据,操作看起来就会清晰很多。 我所设想的应该是这样的一种方式:view由不同的view component和action component组成,这里view只是一个模板,没有任何业务数据。 提供一个类似PrivilegeViewFactory的类,传入view模板,和相应的角色(用户,组。。),生成相应的PrivilegeView,然后由业务逻辑去填充数据,这样可以容易做到权限和view的分离,层次也比较清晰。 每个view component要实现相应的权限接口,要根据不同的角色生成不同的view component。比如DataGrid,不同的角色看的列是不同的,甚至数据内容也是不同的,更细粒度的看,业务不同字段的的数据也是不同。这部分是和ui绑定的,也是最复杂,工作量最大的部分。
posted on 2005-12-21 12:39 Vincent Thinking 阅读(446) 评论(3)  编辑  收藏 所属分类: Work

评论

# re: 用3维坐标来看权限部分 2005-12-22 09:50 Programmer's Life
^_^,我在和team讲的时候更多的讲到的是一种"强奸"的手段,呵呵,其实就是类似Hibernate对于编写的PO通常采用动态代码生成的机制。
至于View分解为View Component以及Action Component这个是现在所有的UIComponent的通常做法,这个是一个显示和逻辑分离的原则。  回复  更多评论
  

# re: 用3维坐标来看权限部分 2005-12-22 12:47 Vincent Thinking
"强奸"的手段。。汗。。^_^

我强调的不是显示和逻辑分离,而是View Component以及Action Component都要实现相应的权限接口,我这里想讨论的是权限的处理方式。根据Role以及相应的权限规则动态的产生不同的View Component,Action Component,由组装器来组装这些组件。当然权限规则会涉及到业务逻辑,只是初步的一个构思。  回复  更多评论
  

# re: 用3维坐标来看权限部分 2005-12-22 21:30 Programmer's Life
呵呵,权限其实就是两个层面的处理,一个是对现有操作的一个截面,另一个则是对现有操作的一个侵入,截面来说处理方式比较容易,侵入方面现在能想到的也就是用动态代码生成这样的手段了  回复  更多评论
  


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


网站导航: