1、功能及功能权限

一般地,用户拥有一项功能,则应体现在主窗口的功能菜单树上,功能还应包括业务 View 内部的功能按钮。框架会根据权限设定情况使各功能按钮可用。为了构建导航树,某些功能还有可能是用来定义导航关系的,而不包含具体的功能含义,举例说明:

1)用来定义导航关系的功能:如图所示,【功能】、【系统管理】这两个节点是用来构建树型结构里的导航关系的,点击它们只会展开树节点,不会打开任何功能。

2)业务 View 内部的功能按钮:【功能定义】节点是一个 View,【AddChild】节点是这个 View 里的“添加”按钮对应的执行动作,如果在授权时,没有分配 AddChild,用户就不能点击该按钮。

 

2、角色

角色是功能的集合,不和具体的部门绑定,当用户拥有某些角色时就拥有了该角色对应的功能权限,角色只对应功能权限而不对应数据权限:

1)分配权限:如果一个功能可用,则必须确保其父节点也可用,否则该功能不会出现在左侧的功能树中。

2)禁用功能:禁用优先于可用,如果某个功能被禁用,则用户不能使用该功能。

 

3、数据权限

用户在使用系统时,除了功能权限外,还需要有数据权限。功能权限是定义在角色上的,而数据权限则直接定义在用户上。用户有权访问哪些数据,对于一个多部门的应用系统,数据权限非常重要,举例说明:北京分公司和天津分公司的用户,他们看到的数据应该是不同的,这可以通过数据权限来指定。

数据权限一般分为规则权限和部门权限,规则权限是一种更灵活的数据权限(不利于标准化),而部门权限,则是通过该用户所属或所管辖的部门进行数据过滤。因此,这里只谈部门权限。

对于部门权限,一种是用户能访问本用户所属部门和所有下属部门的数据。也可以为用户分派管辖部门。在施加部门权限时,如果用户没有分派管辖部门,则采用所属部门,如果分派了管辖部门,则采用已分配的管辖部门,多个管辖部门取并集。

要使部门权限生效,可实现一个通用API函数,由程序员在代码中调用相关API函数,以获得相应的过滤条件,并将过滤条件加入到查询数据的SQL语句中。

 

版权声明:本文为enterpriseplatform原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/enterpriseplatform/p/9620014.html