Hierarchical permissions take effect logic

  • Last update:  2021-07-09
  • 1. 逻辑简介

    数据决策系统中的权限载体「部门」可以为树结构,存在父部门和子部门。下文中称为权限载体树。

    数据决策系统中的权限实体「目录」可以为树结构,存在父目录和子目录。下文中称为权限实体树。

    按照不同的时间先后顺序给父部门/子部门分配父目录/子目录的权限,最终生效结果各不相同。

    1)对于树结构,先配置子节点的权限,再配置父节点的权限。父节点的权限会覆盖子节点的权限,即清除子节点原本的权限,子节点直接继承父节点的权限。

    2)对于树结构,先给父节点配置权限,再给子节点配置不同的权限,父子节点权限各自生效,互不影响。

    注1:职务和子部门同理,都会被父部门配置的权限覆盖掉。

    注2:权限快捷配置同理。

    2. 父覆盖子

    逻辑:对于树结构,先配置子节点的权限,再配置父节点的权限。父节点的权限会覆盖子节点的权限,即清除子节点原本的权限,子节点直接继承父节点的权限。

    2.1 权限载体树

    逻辑:对于同一权限实体(如同一目录),先给子部门配置权限,再给父部门配置权限,父部门的权限会清除子部门设置的权限,子部门直接继承父部门的权限。

    场景:

    先给子部门分配目录的「查看、授权」权限

    再给父部门分配目录的「查看」权限

    结果:

    子部门原先的「查看、授权」权限被清除,继承父部门的「查看」权限。

    2.2 权限实体树

    逻辑:给当权限实体是一棵树结构(例如目录树),给同一权限载体(例如角色)先配置子节点的权限,再配置父节点的权限,会清除原本子节点的权限,子节点继承父节点的权限。

    场景:

    先给角色X分配子目录的「查看、授权」权限。

    再给角色X分配父目录的「查看」权限。

    结果:

    原先的「查看、授权」权限被清除,直接继承父目录权限,角色X对子目录只有「查看」权限。

    2.3 平行权限树

    逻辑:对于权限载体树(父子部门)和权限实体树(父子目录),先给子部门配置子目录权限,再给父部门配置父目录的权限,会清除之前给子部门配置的子目录权限,从而继承父部门的父目录权限。

    场景:

    先给子部门配置子目录的「查看、授权」权限。

    再给父部门配置父目录的「查看」权限。

    结果:

    原先配置的子部门子目录的「查看、授权」权限被清除,继承父部门父目录的权限,子部门子目录最终有「查看」权限。

    2.4 交叉权限树

    逻辑:对于权限载体树(父子部门)和权限实体树(父子目录),先给子部门配置父子目录权限,再给父部门配置父目录权限,会清除子部门的父子目录权限,从而继承父部门的父目录权限

    场景:

    先给子部门配置父目录的「查看、编辑」权限,给子部门配置子目录的「查看、编辑、授权」权限。

    给父部门配置父目录的查看权限。

    结果:

    此时查看子部门的权限,子部门原有的的父子目录的编辑/授权权限被清除,继承父部门配置父目录的查看权限

    3. 子不影响父

    逻辑:对于树结构,先给父节点配置权限,再给子节点配置不同的权限,父子节点权限各自生效,互不影响。

    3.1 权限载体树

    逻辑:对于同一权限实体(如同一数据连接),先给父部门配置权限,再给子部门配置权限,父子部门的权限互不影响,各自生效自己的权限。

    场景:

    先给父部门分配权限管理的「使用、授权」权限。

    再给子部门分配权限管理的「使用」权限。

    结果:

    父部门对权限管理的「使用、授权」权限不变,子部门对权限载体的「使用」权限不变。

    3.2 权限实体树

    逻辑:当权限实体是一棵树结构(比如目录树),给任一权限载体先配置父节点的权限,再配置子节点的权限,父子节点的权限均正常保留,互不影响各自生效。

    场景:

    先给角色X分配父目录的「查看、编辑」权限。

    再给角色X分配子目录的「查看、编辑、授权」权限。

    结果:

    角色X对父目录的「查看、编辑」权限不变,角色X对子目录的「查看、编辑、授权」权限不变。

    3.3 平行权限树

    逻辑:对于权限载体树(父子部门)和权限实体树(父子目录),给父部门配置父目录权限,再给子部门配置子目录的权限。对于子部门来说,子目录保持子部门的设置,父目录及其他子目录都继承父部门的父目录权限。

    场景:

    先给父部门配置父目录的查看权限。

    给子部门取消子目录1的查看权限,配置子模板2的授权权限(权限缩小和权限放大)。

    结果:

    父部门对父目录的「查看」权限不变。并且父部门对子目录继承该权限,父部门对子目录有「查看」权限。

    子目录1和子目录2保持子部门自己的权限配置,子部门对子目录1无权限,子部门对子目录2有「查看、编辑、授权」权限。

    父目录和其他子目录都继承父部门对父目录的「查看」权限,子部门对父目录和其他子目录有「查看」权限。

    3.4 交叉权限树

    此种情况在5.1.14前后版本不同,请根据自己的工程版本选择合适的示例。

    • 5.1.14 及之后版本:时间优先级最高

    • 5.1.14 之前版本:权限实体继承优先级大于权限载体继承

    3.4.1 5.1.14 及之后版本

    逻辑:对于权限载体树(父子部门)和权限实体树(父子目录),给子部门配置父目录权限,给父部门配置子目录权限。

              按照权限设置的时间先后顺序,对于子部门的子目录来说,先继承子部门对父目录的权限,再覆盖继承父部门对子目录的权限。

    场景:

    先给子部门配置父目录的「查看」权限。


    再给父部门配置子目录的「查看、编辑、授权」权限。

    结果:

    当子部门配置父目录的「查看」权限,此时子目录继承该权限,子部门对子目录有「查看」权限

    然后父部门配置子目录的「查看、编辑、授权」权限,按照时间优先级,此时子部门覆盖继承该权限,子部门对子目录有「查看、编辑、授权」权限。

    3.4.2 5.1.14 之前版本

    逻辑:对于权限载体树(父子部门)和权限实体树(父子目录),给子部门配置父目录权限,给父部门配置子目录权限。对于子部门,父子目录均保持子部门本身的设置

              对于子部门的子目录来说,同时有两个继承权限,分别是父目录的权限(来自子部门本身)和父部门的权限,由于权限实体继承优先级大于权限载体继承,所以优先继承父目录的权限,不会继承父部门的子目录权限。

    场景:

    先给子部门配置父目录的「查看」权限。

    再给父部门配置子目录的「查看、编辑、授权」权限。

    结果:

    再次查看子部门的权限,父子目录都只有查看权限。

    对于子部门的子目录来说,同时两个继承权限,一个是子部门配置的父目录的查看权限(权限实体继承),一个是父部门配置的子目录的授权权限(权限载体继承)。由于权限实体继承优先级大于权限载体继承,所以子部门的子部门优先继承查看权限。

    附件列表


    主题: 隐藏by Chauvet
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy