论坛首页 Web前端技术论坛

关于用户界面操作权限

浏览 11815 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-11-27  
不知道大家在界面操作权限的控制是怎样做的。
我想在界面操作后不需要与后台进行交互便可以对权限进行控制。

前提:还是说js+xmlhttp。

实现:以不同的角色登录系统后,界面上的某些按钮根据不同的权限隐藏或变为不可用。

我的做法:将界面上的按钮作为操作统一处理(将其与页面上的静态信息分开)。加载一个页面时先读取该页面的关于操作的配置信息。

可能做法比较幼稚,请大家pp
   发表时间:2004-11-27  
robot_liu 写道
我的做法:将界面上的按钮作为操作统一处理(将其与页面上的静态信息分开)。加载一个页面时先读取该页面的关于操作的配置信息。

思路和我们的差不多。继续做下去,最终把它完善。你把需要做控制的每个页面上有哪些按钮的信息放在后台的配置文件或者数据库中,然后不同的角色(假设你们的权限控制是基于角色的而不是基于单个用户的)可以访问哪些按钮也配置一下。当访问这个页面的时候通过 XMLHTTP 接口从后台 load 相应的按钮信息,后台只返回这个角色有访问权限的按钮。前台做一个通用的控件,根据后台发回的数据显示不同的按钮(动态创建按钮的 img 元素,设置 onclick 等函数)。
0 请登录后投票
   发表时间:2004-12-01  
to dlee:

要调整一下,配置文件中的应该是操作的信息吧,一个操作的可以由按钮或超链接等方式触发。

但是有这样一个问题我一直没法处理好。

就是在加载一个页面的时候,我把按钮是作为这个页面的显示信息(静态内容)配置的,这样如果要实现上面的功能,那还要去取一次这些按钮对应的事件的配置信息。我觉得这个过程有点别扭,不知道你们是怎么做的。
谢谢!
0 请登录后投票
   发表时间:2004-12-02  
权限在更大的范围来讲,在设计里是分成方法级权限和界面元素级的权限两种类型。毫无疑问,界面元素级别的权限是是会最终会映射到方法级的权限的,因为界面元素级的权限粒度一般会大一些,比如你点一个菜单或者按钮,必然触发一个或者多个操作,就涉及到对一个或者多个方法的调用。从这点来讲操作鉴权似乎可以把界面元素级的权限整合到方法级鉴权就可以。其实不然,界面元素级鉴权在系统里其实只应该在用户来获取该页面的时候就做了判断(是否应该显示该界面元素?),不太好的用户交互设计就是在用户操作了某个界面元素才去鉴权。但是往往因为一个界面元素包含过多的方法调用,所以会部分的采用这种方式来做。   
    实际在实现的时候,我们也是把权限信息保存在数据库,控制的时候实行两级控制机制,首先在MVC层对用户的HTTP请求进行拦截,做界面元素级的鉴权,并根据用户权限进行界面元素的构造,然后在用户点取界面元素的时候对界面元素(包含多重操作)的复合权限进行方法级的鉴权,普通界面元素(包含单一操作)的不进行鉴权。
      此外,方法级鉴权作为你系统的外部接口后的业务鉴权机制,也是一个大型系统必须的!
0 请登录后投票
   发表时间:2004-12-05  
用得着这么复杂?写一个自定义标签去配合权限系统来代替页面中静态的按钮不就可以了。
当然,如说你说标签这东西怎么怎么不好,那我也就无话可说了。
0 请登录后投票
   发表时间:2005-01-12  
关键时在业务很复杂时,需要权限控制的内容很多,而且不仅仅时角色的权限、还有分级/分区时树型管理信息的CRUD权限。
用户对权限需求的也不统一,在这么多的要能够活动的配置权限管理系统下真的是很麻烦。

我的想法是在实体对象/业务对象级别针对不同的属性对CRUD加以判断.
*权限单元*
  字段:id,角色,权限类型(CRUD),类名(表名),属性名(字段名)[可嵌套],操作符,备注,_权限限制列_,_创建默 认值_,_属性(字段);类型_

*说明* :
操作符,说明类的属性按照什么规则进行匹配,比如:==,!=,>,<,等。
权限限制列,当为空 时表明限制整行。

这样可以在行级/对象级对权限进行控制。如果部门是树的结构的话,可以通过指定“属性名”和“操作符”(>或<)到达树型分级权限的目的。

在这里我想如果界面简单的话这个权限单元还能对功能按钮的进行Enable的控制。如果界面逻辑很复杂和实体对象很难在CRUD上对应的话,恐怕只能通过特殊的权限控制解决了。

这里的想法或许还很幼稚,见笑了。
2 请登录后投票
论坛首页 Web前端技术版

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