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