俩个树结构快速搭建用户搜索体系

Huy大约 1 分钟javascriptnode

首先回顾 tree 结构:

class TreeNode<T> {
  value: T
  LeafNode?: Array<TreeNode>

  constructor(value: T) {
    this.value = value
  }
}

功能需求:不同部门/用户共同管理同一套文件系统。上级部门可以管理下级部门的文件,但下级部门并无权限查看上级部门的内容。

俩棵树型结构便可很好的实现这个功能。

TreeA 管理部门用户:层级递进为:

000A
  |_ 000B1
  |  |_ 000C1
  |  |_ 000C2
  |  |_ 000C3
  |_ 000B2
  |_ 000B3

A 表示公司,B 表示不同部门,C 表示用户。

TreeB 管理文件系统,及可想象成一个 NAS 盘下的文件目录。

根目录 ~
  |_ 文件夹 a
  |  |_ 文件 1
  |  |_ 文件 2
  |  |_ 文件 3
  |_ 文件夹 b
  |_ 文件夹 c

此时便可以实现想要的功能:

000C1 用户的权限是文件 1 对应关系是:000A|000B1|000C1 --> ~/文件夹 a/文件 1

部门000B1的管理权限是文件夹 a对应关系是:000A|000B1 --> ~/文件夹 a

由这样的俩棵树的对应关系就有了权限管理的办法,当需要更改部门000B1的权限时只需要修改 TreeA 部门用户所对应的文件系统的位置(增删改查)。

Loading...