首页 > 代码库 > 文档管理系统之权限云云

文档管理系统之权限云云

做过文档管理系统的程序员都知道,权限那块还是比较复杂的,现在在我心里跟一团乱麻一样,所以我用这一篇博文分析和记录一下。以下我所说的目录是指:文件夹+文件。在谈整个系统权限之前我想先顶一个基调就是:“疑罪从无”,我假设个人是对所有目录是没有权限的。

一、初级权限分析

  1. 职位-目录:上级职位可以下级职位的人分配文档权限,职位权限不可继承,所有职位默认拒绝权限。
  2. 部门-目录:上个部门的人可以给下属部门分配权限,部门可继承部门权限,所有部门默认拒绝权限。
  3. 个人-目录:  个人接受权限指定。
  4. 目录: 目录可和职位、部门、个人产生权限关联,并可继承上级目录。

二、中级权限分析

  根据初级权限分析,我们得到了三个基本权限关系:职位-目录、部门-目录、个人、目录

下面进行权限的排列组合

  1. (职位-目录)+(部门-目录):同一个目录被职位和部门设置了权限
  2. (职位-目录)+(个人-目录):同一个目录被职位和个人设置了权限
  3. (部门-目录)+(个人-目录):同一个目录被部门和个人设置了权限
  4. (职位-目录)+(部门-目录)+(个人-目录):同一个目录被职位、部门和个人设置了权限

三、高级权限分析

其实初级权限分析中我又一个细节没有说明,那就是每一个初级权限都有三个值有三个值同意、拒绝、弃权,在一般情况下(即假设职位、部门、个人优先度相同)他们的得出值分别是1、-1、0。

但在实际应用中个人权限值>职位权限>部门权限,

所以我将会得到初级权限值

  1. 职位-目录:  同意、拒绝、弃权值分别设置为:2、-2、0
  2. 部门-目录:  同意、拒绝、弃权值分别设置为:1、-1、0
  3. 个人-目录:  同意、拒绝、弃权值分别设置为:3、-3、0

基于以上定义,我们将会得到中级权限值:

  1. (职位-目录)+(部门-目录):(2+1)、(2+0)、(2-1)
  2. (职位-目录)+(个人-目录):(2+3)、(2+0)、(2-3)
  3. (部门-目录)+(个人-目录):(1+3)、(1+0)、(1-3)
  4. (职位-目录)+(部门-目录)+(个人-目录):(2+1+3)、(2+1+0)、(2+1-3)、(2+0+3)、(2-1+3)等等这块枚举数值将会3*3*3个结果

根据我们在现实中的定义,只要权限值不能够大于0,则表示这个目录无此权限。

 以上说得有点抽象,也可能有一些我没有想清楚,欢迎大家拍砖。

文档管理系统之权限云云