OA系统权限管理设计(2)

a)角色中的成员继承角色的权限,角色与角色没有上下级关系,他们是平行的。通过角色赋予权限,是指没办法按职位或项目的分类来赋予权限的另一种方式,如:系统管理员,资料备份员

b)实例中:对于本系统中,全体人员应该默认都有的模块,如我的邮件,我的文档,我的日志,我的考勤……,这些模块系统成员都应该有的,我们建立一个角色为系统默认角色,把所有默认访问的模块的浏览权加入到里面去,则系统成员都能访问这些模块。

D.直接指定

a)直接指定是通过对某个人具体指定一项权限,使其有使用这个权限的能力。直接指定是角色指定的一个简化版,为了是在建立像某个项目的组长这种角色时,省略创建角色这一个步骤,使角色不至于过多。

b)实例中:指定某个项目的组长,把组长权指定给某个人。

针对职位、项目组:

如果用添加新员工,员工调换职位、项目组,满足了员工会自动继承所在职位、项目组的权限,不需要重新分配权限的功能。

用户管理

用户可以属于某一个或多个用户组,可以通过对用户组授权,来对组中的所有用户进行权限的授予。一个用户可以属于多个项目组,或担任多个职位。

授权管理

将一个基本权限或角色授予用户或用户组,使用户或用户组拥有授予权限的字符串,如果角色、职位、项目中存在相同的基本权限,则取其中的一个;如脱离角色、职位、项目组,只是取消用户或用户组的中此角色、职位、项目组所授予的权限。用户所拥有的权限是所有途径授予权限的集合。管理员用户可以查看每个用户的最终权限列表。

权限管理

基本操作权限与权限组(基本操作权限的集合)的管理。

oa

物理数据模型图如下:

oa2

根据以上设计思想,权限管理总共需要以下基本表:

tb_User:用户信息基本表;

tb_Department:部门表;

tb_Company:公司表;

tb_Module:系统模块表;

tb_Action:系统中所有操作的动作表;

tb_Permit:由tb_Module与tb_Action两表结合产生的系统基本权限表;

tb_Permit_Group:权限组表,将一模块的中的所有权限划分一个权限组中,可以通过权限组授予用户权限;

tb_Role:角色表,基本权限的集合。无上级与下级之分;

tb_Position:职位表,有上级与下级之分;

tb_Project:项目组表,

tb_Role_Permit:角色授权表;

tb_Postion_Permit:职位授权表;

tb_Project_Permit:项目授权表;

tb_Project_User:项目成员表,IsLead字段代表此成员为项目组长;

tb_Postion_User:职位成员表;

tb_User_Permit:用户授权表,用户ID与角色、职位、项目及直接授予的权限串表;

权限的产生:

由tb_Module中的ModuleCode与tb_Action中的ActionCode组成

权限代码PermitCode=ModuleCode+ActionCode。

实例:ModuleCode=0101,ActionCode=01,则PermitCode=010101。

权限值则有ModuleValue与ActionCode组合而成,采用下划线来连接。

实例:ModuleValue=Sys_User,ActionValue=AdD,PermitValue= Sys_User_Add

权限组:

包括一组同一模块下的权限的组合,如管理用户包括基本的权限:添加、删除、修改、查看等,将这些组合起来构成一个用户组——“用户管理”权限组。其它类似。只是为了更方便的查看系统权限与权限的分配。

实例:如管理用户的权限代码为010101à查看用户,010102à添加用户,010103à删除用户,010104à修改用户,010105à审核用户等,将这些基本权限组合起来一个集合而构成了“用户管理”权限组。

角色、职位、项目:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/89784f30f1eeb681234ff5d0f75bc78e.html