OA系统权限模型设计

  1. 定义:权限决定了某用户是否允许对某资源进行某种操作。用户,包括具体用户及用户的集合。用户的集合包括用户组,用户角色等。资源:包括数据(字段、记录、表、文件等)、界面元素(菜单、窗口、按钮、域等)、后台程序等。操作包括:
    1. 数据的:创建、列举、查看、修改、删除等
    2. 界面元素的:是否可见,是否可用等
    3. 程序:是否可执行等。
  1. 简化思路
    1. 按照事件驱动机制,程序一般与某个界面元素关联。因此可以不用直接控制程序的权限。
    2. 资源主要对应数据,操作主要对应菜单或按钮
    3. 对于数据的权限控制,细化到记录级别就足够
    4. 用户组主要与数据挂钩,角色主要与操作挂钩
    5. 系统可以建立一些自然的用户分组(例如:部门所有用户,单位所有用户,担任同一职务的用户)
    6. 用户部门调动后,应支持资源权限的移交和原用户帐号的锁定
  1. 操作权限类型(每个用户 15 个状态位)
    1. 拥有(创建权,授予权,接受权):接受之后,这些记录也视为接受者的个人记录
    2. 列举(个人的,组内的,其他):个人的列举权默认打开,其他默认关闭,也可以调整策略
    3. 查看(个人的,组内的,其他):个人的查看权默认打开,其他默认关闭,也可以调整策略
    4. 修改(个人的,组内的,其他):个人的修改权默认打开,其他默认关闭,也可以调整策略
    5. 删除(个人的,组内的,其他):个人的删除权默认打开,其他默认关闭,也可以调整策略
  1. 数据共享类型(每条数据 12 个状态位):个人权限均默认打开,其他默认关闭,也可以调整策略
    1. 个人可列
    2. 个人可查(隐含个人可列)
    3. 个人可删(隐含个人可列)
    4. 个人可改(隐含个人可查)
    5. 组内可列
    6. 组内可查(隐含组内可列)
    7. 组内可删(隐含组内可列)
    8. 组内可改(隐含组内可查)
    9. 全局可列
    10. 全局可查(隐含全局可列)
    11. 全局可删(隐含全局可列)
    12. 全局可改(隐含全局可查)
  1. 初步考虑需要的表
    1. 用户表
    2. 用户组表
    3. 用户 - 用户组关联表
    4. 角色表
    5. 用户 - 角色分配表
    6. 权限代码表(菜单、按钮、数据域等):菜单对应模块,按钮对应具体操作
    7. 角色 - 权限分配表:角色能操作哪些界面菜单或按钮,包括可见否,可操作否
    8. 部门表
    9. 员工表
    10. 员工 - 部门关联表
    11. 用户对应员工表
    12. 职务表(或岗位表)
    13. 职务 - 角色关联表
    14. 员工 - 职务关联表

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对 OA 系统的特点,权限说明: 权限 在系统权限通过模块 +动作来产生,模块就是整个系统的一个子模块,可能对应一个 菜单,动作也就是整个模块(在B/S 系统也就是一个页面的所有操作,比如“ 浏览、添 加、修改、删除” 等)。将模块与之组合可以产生此模块下的所有权限权限组 为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“ 权限组” ,也就 是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的 浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。 角色 权限的集合,角色与角色之间属于平级关系,可以将基本权限权限组添加到一个角色, 用于方便权限的分配。 用户组 将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使 一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按 职位、项目或其它来实现。用户可以属于某一个组或多个组。 通过给某个人赋予权限,有4 种方式( 参考飞思办公系统) A . 通过职位 a) 在职位,职位成员的权限继承当前所在职位的权限,对于下级职位拥有的权限不可继 承。 b) 实例:如前台这个职位,对于考勤查询有权限,则可以通过对前台这个职位设置考勤 查询的浏览权,使他们有使用这个对象的权限,然后再设置个,考勤查询权(当然也可以不 设置,默认能进此模块的就能查询),则所有前台人员都拥有考勤查询的权利。 B. 通过项目 a) 在项目,项目成员的权限来自于所在项目的权限,他们同样不能继承下级项目的权限, 而对于项目组长,他对项目有全权,对下级项目也一样。 b) 实例:在项目,项目成员可以对项目上传文档,查看本项目的文档,可以通过对项 目设置一个对于本项目的浏览权来实现进口,这样每个成员能访问这个项目了,再加上项目 文档的上传权和查看文档权即可。 c) 对于组长,因为可以赋予组长一个组长权(组长权是个特殊的权限,它包含其他各种权 限的一个权限包),所有组长对于本项目有全权,则项目组长可以对于项目文档查看,审批, 删除,恢复等,这些权限对于本项目的下级项目依然有效。 C. 通过角色 a) 角色的成员继承角色的权限,角色与角色没有上下级关系,他们是平行的。通过角色 赋予权限,是指没办法按职位或项目的分类来赋予权限的另一种方式,如:系统管理员,资 料备份员… b) 实例:对于本系统,全体人员应该默认都有的模块,如我的邮件,我的文档,我的 日志,我的考勤……,这些模块系统成员都应该有的,我们建立一个角色为系统默认角色, 把所有默认访问的模块的浏览权加入到里面去,则系统成员都能访问这些模块。 D. 直接指定 a) 直接指定是通过对某个人具体指定一项权限,使其有使用这个权限的能力。直接指定是 角色指定的一个简化版,为了是在建立像某个项目的组长这种角色时,省略创建角色这一个 步骤,使角色不至于过多。 b) 实例:指定某个项目的组长,把组长权指定给某个人。 针对职位、项目组: 如果用添加新员工,员工调换职位、项目组,满足了员工会自动继承所在职位、项目组的权 限,不需要重新分配权限的功能。 用户管理 用户可以属于某一个或多个用户组,可以通过对用户组授权,来对组的所有用户进行权限 的授予。一个用户可以属于多个项目组,或担任多个职位。 授权管理 将一个基本权限或角色授予用户或用户组,使用户或用户组拥有授予权限的字符串,如果角 色、职位、项目存在相同的基本权限,则取其的一 个;如脱离角色、职位、项目组, 只是取消用户或用户组的此角色、职位、项目组所授予的权限。用户所拥有的权限是所有 途径授予权限的集合。管理员用户可以 查看每个用户的最终权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值