根据以上的类关系图和ER图可以看出。整个权限可以抽象为五个对象组成。
OrgBean :用于描述org模型。
Role:用于描述角色。
Permission:用于描述权限。
Resource:用于描述资源。
Operation:用于描述操作。
其中Permission中有Resource , Operation的聚合,资源和操作组成权限。
Role和Permission都有自包含。因为设计到权限的继承。
资源Resource也可能出现一颗树形结构,那资源也要有自包含。
思想:
权限系统的核心由以下三部分构成:1.创造权限,2.分配权限,3.使用权限,然后,系统各部分的主要参与者对照如下:1.创造权限-Creator创造,2.分配权限- Administrator分配,3.使用权限- User:
1.Creator创造Privilege,Creator在设计和实现系统时会划分,一个子系统或称为模块,应该有哪些权限。这里完成的是Privilege与Resource的对象声明,并没有真正将Privilege与具体Resource实例联系在一起,形成Operator。
2.Administrator指定Privilege与Resource Instance的关联。在这一步,权限真正与资源实例联系到了一起,产生了Operator(Privilege Instance)。Administrator利用Operator这个基本元素,来创造他理想中的权限模型。如,创建角色,创建用户组,给用户组分配用户,将用户组与角色关联等等...这些操作都是由Administrator来完成的。
3. User使用Administrator分配给的权限去使用各个子系统。Administrator是用户,在他的心目中有一个比较适合他管理和维护的权限模型。于是,程序员只要回答一个问题,就是什么权限可以访问什么资源,也就是前面说的Operator。程序员提供Operator就意味着给系统穿上了盔甲。Administrator就可以按照他的意愿来建立他所希望的权限框架可以自行增加,删除,管理Resource和Privilege之间关系。可以自行设定用户User和角色Role的对应关系。(如果将Creator看作是Basic的发明者,Administrator就是Basic的使用者,他可以做一些脚本式的编程) Operator是这个系统中最关键的部分,它是一个纽带,一个系在Programmer,Administrator,User之间的纽带。