将一个基本权限或角色授予用户或用户组,使用户或用户授予基本权限组拥有授予权限的字符串,如果角色、职位、项目中存在字符串授予拥有相同的基本权限,则取其中的一个;如脱离角色、职位、基本权限相同项目组,只是取消用户或用户组的中此角色、职位、项目项目角色职位组所授予的权限。用户所拥有的权限是所有途径授予权限授予拥有途径的集合。管理员用户可以查看每个用户的最终权限列表。管理员查看可以 权限管理
基本操作权限与权限组(基本操作权限的集合)的管理。权限操作基本
OA权限管理设计的实现
物理数据模型图如下:
物理数据模型图
根据以上设计思想,权限管理总共需要以下基本表:
tb_User:用户信息基本表;
tb_Department:部门表;
tb_Company:公司表;
tb_Module:系统模块表;
tb_Action:系统中所有操作的动作表;
tb_Permit:由tb_Module与tb_Action两表结合产生的系统基本权限表;
tb_Permit_Group:权限组表,将一模块的中的所有权限划分一个权permitgroup所有限组中,可以通过权限组授予用户权限;
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与角色、职位、项目及直接permit授权直接授予的权限串表;
权限的产生:
由tb_Module中的ModuleCode与tb_Action中的ActionCode组成
权限代码PermitCode=ModuleCodeActionCode。
实例:ModuleCode=0101,ActionCode=01,则PermitCode=010101。
权限值则有ModuleValue与ActionCode组合而成,采用下划线来modulevaluactioncod下划线连接。
实例:ModuleValue=Sys_User,ActionValue=AdD,PermitValue=Sys_User_Add
权限组:
包括一组同一模块下的权限的组合,如管理包括组合权限用户包括基本的权限:添加、删除、修改、查看等,将这查看包括删除些组合起来构成一个用户组用户管理权限组。其组合权限构成它类似。只是为了更方便的查看系统权限与权限的分配。方便只是查看
实例:如管理用户的权限代码为010101à查看用010101查看实例户,010102à添加用户,010103à删除用户,010104à修改用户,010105à审010104010105010102核用户等,将这些基本权限组合起来一个集合而构成了ldquoldquo基本这些;用户管理权限组。
角色、职位、项目:
也就是按特定的需要划分一种权限的集合。需要集合权限使用角色授权表、职位授权表、项目授权表来实现。授权项目使用实现表中存放的是权限代码PermitCode,而不是权限组的GroupCode代码。
用户授权:
由用户授权表来实现,用户授权表中的RoleCode、rolecod授权实现PositionCode、ProjectCode分别是角色表中RoleCode组成的串、职位表PositionCode组成的串、projectcodrolecod组成ProjectCode组成的串。与角色授权表中的角色代码RoleCode、职位授权表projectcodrolecod组成中PositionCode、项目授权表中的ProjectCode不对应(不是主表与从表之间外projectcod对应之间键关系)。
从而能够实现了一个用户可以拥有多个角色能够拥有可以、多个职位、多个项目的情况。
用户授权表中的PermitCode为直接授权的权限代码串,直接给用户permitcod授权直接分配权限。
实例:
用户ID为UserId=1的用户权限授权表的记录为:
RoleCode=001,003
PostionCode=001,002
ProjectCode=001,005
PermitCode=010101,020102
表明此用户拥有两个角色,代码为001和003,并继承这两个拥有表明代码角色的权限;
担任两个职位,代码为001与002,并继承两个职位的权限;权限代码职位
属于两个项目组中的成员,项目代码为001与005,并继承两代码项目属于个项目中的权限。
直接指定给用户的权限为010101与010102这两个权限代码的权限
用户权限字符串:
根据用户授权表的角色代码、职位代码、项授权根据代码目代码得到权限字符串及表中直接分配的权限字符串组合字符串得到分配成一个用户的所有权限字符串集合。
信息发布:广州名易软件有限公司 http://www.myidp.net