V3.07.4Understandability of permission inheritance and exceptions设计研究

权限继承与例外的可理解性

别名: 权限继承 · 生效权限 · 例外覆盖规则 · 权限推导

概念解释

协作系统里的权限很少逐人逐文档设置,几乎总是沿结构继承:文件夹的授权传给里面所有文档,群组的授权传给所有成员,子级默认沿用父级。继承让大规模授权成为可能,但代价是「某人对某文档到底有什么权限」从一个直接可见的值变成了一个需要推导的量——要看它在哪个文件夹里、命中了哪些群组、有没有被单独设置的例外打断。可理解性问题就出在这里:用户靠心智模型推演生效权限,而模型的规则与系统的合并规则一旦错位,推导结果就是错的。典型表现是两类意外:以为例外挡住了某人的访问,实际被更深一层的群组嵌套绕了过去;以为子文档继承了放开的权利,实际父级早已收紧。

机制

继承把配置从「每个对象逐项写」压缩成「一处结构加少量例外」,规模收益的另一半是推导成本。生效权限由多条来源合并而成:结构继承(父传子)、群组展开(人经群组获得授权)、直接授权与例外(对特定人单独放开或屏蔽)。合并采用什么语义——显式拒绝压过一切允许,还是更具体的规则压过更一般的,还是最宽松的获胜——不同系统各有一套,且几乎从不向用户说明。用户默认的直觉模型通常是「我直接给他的算数」加「看得见的结构就是全部」,两处都可能与实现冲突:例外一多,「看结构推权限」这条低成本校验路径就失效;嵌套群组展开两层以上,中间层的授权来源超出工作记忆;而在子对象上悄悄设的例外,从父级视图完全看不出来,反而强化了对继承的错误信任。错误由此静默累积:没有人「操作失误」,只是每个人的推导都差了一点。

怎么研究

  • 心智模型引出:让用户在给定结构(继承树加若干例外)下,选出某人生效权限的来源构成,与系统实际合并结果对照;错误按类型归类——漏看例外、嵌套展开遗漏、合并语义误解——错误类型的分布指出哪条规则最难。
  • 预测任务:给一张结构图,让用户逐项预测若干(人,文档)组合的生效权限,与真实值对照;错误聚类的位置(深度、例外数、来源数)直接量化可理解性的崩塌点。
  • 推导耗时:记录预测反应时随嵌套深度与来源数量的变化,斜率陡增处即超出工作记忆的边界。

边界

继承本身仍是正确的默认——几个人、一层结构的场景几乎不出错,问题只在深度嵌套与多来源叠加(群组套群组、直接授权加链接授权并存)时爆发。反过来,完全平铺权限(每个文档单独设置)可理解但不可维护,规模一大就烂掉。所以目标不是消灭继承,而是让推导过程可检视:生效值直接给出,来源可追溯。可理解性只覆盖静态结构上生效权限能否被推对;档位本身的语义(查看/评论/编辑各意味着什么)与权限变化时如何告知,是同组另外两件事。

怎么落地

  • 权限面板第一行显示合并后的生效值(此人此文档实际能做什么),来源列表折叠在下,让用户先看结果再查构成。
  • 生效值可反查来源:点开即列出「继承自哪个文件夹、经哪个群组、哪条例外」,一键跳到来源处修改。
  • 有例外的对象在结构与列表上打标记,父级视图可见「下方有 N 个例外」,例外不再隐形。
  • 全系统统一合并语义(如显式拒绝优先)并写入帮助,不同功能不得各用一套。
  • 群组嵌套超过两层、权限来源超过三处时给出简化建议,把结构复杂度当设计指标管理。
  • 验证:改动父级权限后走查传播结果是否符合用户预期;权限界面改版用预测任务做回归,错误率不升才算通过。

延伸

  • 同组V3.07.1 共享范围需在内容旁持续可见 · V3.07.2 查看、评论与编辑三级权限的语义差别 · V3.07.3 扩大共享范围需要显式确认 · V3.07.5 权限变更需通知受影响的协作者
  • 相邻A7 心智模型 · V7.04 内容治理
  • 站内检索permission inheritance · effective permission · access control list · exception override

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/V3.07.4