论坛首页 Java企业应用论坛

老生常談-權限控制的一些話題

浏览 9245 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (5)
作者 正文
   发表时间:2009-11-09   最后修改:2009-11-09
我是为不同权限准备不同的视图模板。
比如访问index的时候,普通用户就跳转到index.html,管理员则跳转到admin_index.html。两个模板之间重复的代码的部分提出来,作为partial,分别往index.html和admin_index.html中渲染。嗯,我说的是我在rails中的解决方案。不知道Java有没有类似的东东。

p.s 我也是小心眼男
0 请登录后投票
   发表时间:2009-11-09  
yuan 写道
我是为不同权限准备不同的视图模板。
比如访问index的时候,普通用户就跳转到index.html,管理员则跳转到admin_index.html。两个模板之间重复的代码的部分提出来,作为partial,分别往index.html和admin_index.html中渲染。嗯,我说的是我在rails中的解决方案。不知道Java有没有类似的东东。

p.s 我也是小心眼男


那要是系统内有10个角色,每个角色对index页面上的组件权限都不同,有只读,有修改,有屏蔽。。。

怎么办
0 请登录后投票
   发表时间:2009-11-09  
helian 写道
yuan 写道
我是为不同权限准备不同的视图模板。
比如访问index的时候,普通用户就跳转到index.html,管理员则跳转到admin_index.html。两个模板之间重复的代码的部分提出来,作为partial,分别往index.html和admin_index.html中渲染。嗯,我说的是我在rails中的解决方案。不知道Java有没有类似的东东。

p.s 我也是小心眼男


那要是系统内有10个角色,每个角色对index页面上的组件权限都不同,有只读,有修改,有屏蔽。。。

怎么办

这个我也想了,似乎每添加一种角色,增加的代码量不多,因为相同的部分都提取出来了,不同权限之间不一样的只是按钮。不过模板文件会多出来。管理文件麻烦不?我也不知道……哈哈,好像也不是很完美的解决方案。我只是抛抛我的砖。
0 请登录后投票
   发表时间:2009-11-09  
yuan 写道
helian 写道
yuan 写道
我是为不同权限准备不同的视图模板。
比如访问index的时候,普通用户就跳转到index.html,管理员则跳转到admin_index.html。两个模板之间重复的代码的部分提出来,作为partial,分别往index.html和admin_index.html中渲染。嗯,我说的是我在rails中的解决方案。不知道Java有没有类似的东东。

p.s 我也是小心眼男


那要是系统内有10个角色,每个角色对index页面上的组件权限都不同,有只读,有修改,有屏蔽。。。

怎么办

这个我也想了,似乎每添加一种角色,增加的代码量不多,因为相同的部分都提取出来了,不同权限之间不一样的只是按钮。不过模板文件会多出来。管理文件麻烦不?我也不知道……哈哈,好像也不是很完美的解决方案。我只是抛抛我的砖。


界面永远是脏活累活啊
0 请登录后投票
   发表时间:2009-11-10  
要追求界面纯粹的干净的,不包含一点逻辑,10个按钮就是1024个模版。。。

没必要吧
0 请登录后投票
   发表时间:2009-11-10  
没必要为了前台的干净而给自己找麻烦。这种情况在页面嵌入Java代码是最简单的方法。当然,如果类似情况很多,就用自定义标签吧。
0 请登录后投票
   发表时间:2009-11-10  
可以对按钮Id采用唯一的标识, 同时在权限实体表增加关联按钮字段, 通过自定义标签对该按钮进行权限校验, 没有相应权限则隐藏按钮.
0 请登录后投票
   发表时间:2009-11-10  
冰火特蕾莎 写道

偶目前想到的是用tag的方式。但使用范围太窄了呀。并且,一旦用了tag,前台页面就依赖于这个tag了,换句话说,以后要是决定不用tag了,还很麻烦滴。再者,在我的tag还没出来以前,人家做业务的就没法动手写页面了。因为写了以后还得改,这也是偶不想看见的。

 

有没有类似于AOP一样的无侵入式的方法,能够很优雅的解决视图层的权限控制的问题呢?偶想虚心学习哦

看你的权限粒度要细到什么程度了。个人感觉这些东西是和业务相关的,很难做到无侵入的。毕竟权限是分两个层次了,一个是通用的,还有一个就是业务相关的。通用的一般粒度都比较粗,是可以分开的,而业务权限一般都比较复杂,很难做到无侵入。这也是为什么一直以来没有通用权限框架的原因。我想你明白了这两个权限的含义后应该心里有底了。

一般业务相关的,统一使用tag我觉得是一个不错的方式,看起来清晰多了。你这里想把tag从表示层驱除,也是一个很麻烦的地方,hoho。很多人都说表示层不该有业务逻辑,其实我觉得表示层也是有表示层的逻辑的,想要驱除,同样很难。只能根据情况,尽可能的驱除,但不能绝对。tag在表示层已经很简单的,做到这步就足够了。

至于标签的开发,不会影响别人页面的进度。你可以先设计一个没有任何功能的空tag就是了,具体业务再慢慢写。

0 请登录后投票
   发表时间:2009-11-10  
BTW:hoho,偶也曾一度使用火星文,虽然俺不是90后。。。。不过火星文嘛,休闲可以,如果提问题,回问题的看起来就很苦恼了。
0 请登录后投票
   发表时间:2009-11-10  
动态页面 只用静态的标签语言应该是实现不了的
0 请登录后投票
论坛首页 Java企业应用版

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