资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
OA 系统权限管理设计方案l 不同职责的人员,对于系统操作的权限应该是不同的。优秀的业务系统,这是最基本 的功能。l 可以对 “组 ”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下 员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中就提出了 对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。l 权限管理系统应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。 就像是组件一样的可以被不断的重用, 而不是每开发一套管理系统,就要针对权限管理 部分进行重新开发。l 满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权 限的管理, 而另外一种则是资源权限的管理, 在不同系统之间, 功能权限是可以重用的, 而资源权限则不能。针对 OA 系统的特点,权限说明:权限在系统中,权限通过 模块+ 动作 来产生,模块就是整个系统中的一个子模块,可能对应 一个菜单, 动作也就是整个模块中 (在 B/S 系统中也就是一个页面的所有操作, 比如“浏 览、添加、修改、删除 ”等)。将模块与之组合可以产生此模块下的所有权限。权限组为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组 ”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包 括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。角色 权限的集合, 角色与角色之间属于平级关系, 可以将基本权限或权限组添加到一个角色 中,用于方便权限的分配。用户组将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快 速使一类人具有相同的权限, 来简化对用户授予权限的繁琐性、 耗时性。 用户组的划分, 可以按 职位、项目 或其它来实现。用户可以属于某一个组或多个组。通过给某个人赋予权限,有 4 种方式 ( 参考飞思办公系统 )A. 通过职位a)在职位中,职位成员的权限 继承 当前所在职位的权限,对于下级职位拥有的权限不 可继承。b)实例中 :如前台这个职位,对于考勤查询有权限,则可以通过对前台这个职位设置 考勤查询的浏览权,使他们有使用这个对象的权限,然后再设置个,考勤查询权(当然 也可以不设置, 默认能进此模块的就能查询) ,则所有前台人员都拥有考勤查询的权利。B. 通过项目a) 在项目中,项目成员的权限来自于所在项目的权限,他们同样不能继承下级项目的 权限,而对于项目组长,他对项目有全权,对下级项目也一样。b) 实例中 :在项目中,项目成员可以对项目中上传文档,查看本项目的文档, 可以通过对项目设置一个对于本项目的浏览权来实现进口, 这样每个成员能访问这个项目了,再 加上项目文档的上传权和查看文档权即可c) 对于组长,因为可以赋予组长一个组长权(组长权是个特殊的权限,它包含其他各 种权限的一个权限包),所有组长对于本项目有全权,则项目组长可以对于项目文档查 看,审批,删除,恢复等,这些权限对于本项目的下级项目依然有效。C. 通过角色a) 角色中的成员继承角色的权限,角色与角色没有上下级关系,他们是平行的。通过 角色赋予权限,是指没办法按职位或项目的分类来赋予权限的另一种方式,如:系统管 理员,资料备份员b) 实例中:对于本系统中,全体人员应该默认都有的模块,如我的邮件,我的文档,我的日志,我的考勤 ,这些模块系统成员都应该有的,我们建立一个角色为系统默 认角色,把所有默认访问的模块的浏览权加入到里面去, 则系统成员都能访问这些模块。D. 直接指定a) 直接指定是通过对某个人具体指定一项权限,使其有使用这个权限的能力。直接指 定是角色指定的一个简化版, 为了是在建立像某个项目的组长这种角色时, 省略创建角 色这一个步骤,使角色不至于过多。b) 实例中:指定某个项目的组长,把组长权指定给某个人。针对职位、项目组:如果用添加新员工,员工调换职位、项目组,满足了员工会自动继承所在职位、项目组 的权限,不需要重新分配权限的功能。用户管理用户可以属于某一个或多个用户组,可以通过对用户组授权,来对组中的所有用户进行 权限的授予。一个用户可以属于多个项目组,或担任多个职位。授权管理将一个基本权限或角色授予用户或用户组,使用户或用户组拥有授予权限的字符串,如 果角色、职位、项目中存在相同的基本权限,则取其中的一个;如脱离角色、职位、项 目组,只是取消用户或用户组的中此角色、职位、项目组所授予的权限。用户所拥有的 权限是所有途径授予权限的集合。管理员用户可以查看每个用户的最终权限列表。权限管理OA权限管理设计的实现物理数据模型图如下:tb ModulaModdeCodevcharHlModule NamevsrcharpO)ModuleValuevarchar(20)UnkUrlvarchar(2w)Paient Modulevarch3r(4JModule Descriptiontb ActiontbConnpainytb RacmirAction Cede varchar)Action Name vafthar(10Action Value varthstpOJCompany Cede varcharP)Company Nama vafchar20)tb DepartmenrDeprtfTientCodeDepartment Name Parent Dep rtment Depart rnnt Description Company Codevreh(3) uarcharpOV3rchar(3) vtchr(256JPermit Code Module Code Action Code rl&mitValuatb Jser Permittb UserV3Fch3l(l00) varchaT(100 varchar(10Q 3Fchaif4000)tb R&jmit Group(b Rnsition Permitvarchar varchar 4 vrchar (2) vanaahr20)UseridRole Code RosiricnCcde Reject Co d& Permit CodsGroup Code varohar3J roupName varchar(20)Permit Code varchar (4000)Use Id Uv日 Nmme PasswoTd TrueName Dept CodeintvartharpO varchar(50 varchflF12) varchai G3)rb Fbsil:ion IJserrb Roject UsetRositionCode varchar (6 UseridintRopctCeda vaicharp)UsgNdvarGhar100)hLeadinttb Rale PermitRole Code vaffhar(3) RermirCcde var?har4000)R&fjtionCoda vardiaiP) Permit Code varthar(4D00tb_FVoject_RetmitReject Code varchr3)PermiaCode warchf|4000)tb Roletb Positiontb RojectRqIc Codev#char(3Role Name varchar (20Role DescripNan wrchr(256RjsitronCodePositionPosition DescriptionParentFYsitonDept Codevartharp) varchar(20 varcharp56) varcharfS) varchar3)Reject CodeRoject Nrne Parent RejectRaject Des tfiptiohvarchar 3 vrchar pO) varohar3J varchar (2S6)物理数据模型图根据以上设计思想,权限管理总共需要以下基本表:tb_User :用户信息基本表;tb_Departme nt :部门表;tb_Compa ny :公司表;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 组合而成,采用下划线来连接, PermitValue= Sys_实例: ModuleValue=Sys_User,ActionValue=AdDUser_Add权限组:包括一组同一模块下的权限的组合,如管理用户包括基本的权限:添加、删除、 修改、查看等,将这些组合起来构成一个用户组 “用户管理 ”权限组。其它类似。只 是为了更方便的查看系统权限与权限的分配。实例:如管理用户的权限代码为010101 a查看用户,010102 a添加用户,010103 a删除用户,010104 a修改用户,010105 a审核用户等,将这些基本权限组合起 来一个集合而构成了 “用户管理 ”权限组。角色、职位、项目:也就是按特定的需要划分一种权限的集合。使用角色授权表、职位授权表、项目 授权表来实现。授权表中存放的是权限代码 PermitCode, 而不是权限组的 GroupCod e 代码。用户授权:由用户授权表来实现,用户授权表中的 RoleCode 、PositionCode 、 ProjectCo de 分别是角色表中 RoleCode 组成的串、职位表 PositionCode 组成的串、 ProjectC ode 组成的串。 与角色授权表中的角色代码 RoleCode 、职位
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号