通用权限管理控件-控件原理

来源:互联网 发布:安徽网络电视台客户端 编辑:程序博客网 时间:2024/04/30 16:38

.
1、结构

单击显示全图,Ctrl+滚轮缩放图片

2、权限管理模型 

权限管理模型类似于操作系统的用户管理模型,支持多重继承关系

单击显示全图,Ctrl+滚轮缩放图片

权限管理(操作权限、数据对象权限)基本原则:
  1. 角色是特殊类型的用户
  2. 所有用户权限关系均继承与Publics角色
  3. 用户的权限=自身的权限+隶属于所有角色的权限


3、操作权限管理控件内部基本对象关系简述

单击显示全图,Ctrl+滚轮缩放图片


Frame对象负责维护整个控件的业务逻辑关系,通过Open方法激活Frame,Frame初始化系统所有对象,并建立用户和功能操作、数据对象的权限关系。

每个User对象都维护一些属性列表,如果用户是角色类型则RoleList则保存用户隶属于的角色用户列表,MemberList保存自己的成员列表,FunList保存自己的可用功能操作列表,ObjectList保存自己的可用数据对象列表.HasFun方法判定用户是否有指定的功能操作(包括继承角色的功能操作),HasRole方法判定用户是否隶属于指定的角色,HasMember方法判定用户是否有指定的成员,HasObject方法判定用户是否有指定的数据对象访问权限.(包括继承角色的数据对象)


Open方法实现流程:
  1. 依据用户表建立系统用户列表,列表每个成员为User对象
  2. 依据功能表建立系统功能列表,列表每个成员为Fun对象
  3. 依据用户角色关系表填充User对象的RoleList和MemberList,使每个User对象知道自己有多少个隶属于的角色和成员
  4. 依据用户功能关系表和用户数据对象关系表填充FunList和ObjectList,使每个User对象知道自己可用的功能和自己可操作的数据对象

操作权限判定流程:

1、在用户的FunList里查找可用的功能,如果有表明用户可以操作这个功能,否则要遍历RoleList,调用每个角色的HasFun方法,查看所有隶属于的角色是否有功能权限。 控件有严格的逻辑检查功能,可以避免循环授权的错误。


4、数据库结构

单击显示全图,Ctrl+滚轮缩放图片

EMail:              手机: 13530081456 

MSN:                       QQ: 71876426