状态安全性规则

状态具有两种类型的安全性:特权和属性。 这两种安全性都用于确定修改特定属性的需求。确定要在每个状态上设置哪种类型的安全性。

特权安全性

特权安全性定义了当变更请求 (CR) 处于所选状态并且用户具有必需特权时可修改的属性的列表。

例如,针对 in_review 状态,verifier 特权具有作为可修改属性列出的概要和描述。 因此,当 CR 处于 in_review 状态时,任何具有 verifier 特权的用户都可以修改这些属性。

属性安全性

状态上的属性安全性定义了当 CR 处于所选状态并且特定属性的值与用户标识匹配时可修改的属性的列表。 例如,resolver="john"enterer="sam"

为使属性安全性起作用,所选的属性必须包含一个用户标识作为其值。 即该属性具有类型 CCM_USER

可以对属性或属性与用户特权的组合定义属性安全性。

如果指定了特权,那么必须满足以下两个条件才能修改属性列表:
  • 属性值必须等于用户标识。
  • 用户必须具有指定的特权。

例如,规则规定当 CR 处于 assigned 状态时, 只有提交了 CR(CR 上提交者属性的值必须和登录的用户标识相同)并且具有 developer 特权的用户才可以修改 defect_type 属性。 可修改的属性中列出了 defect_type 属性。 因此,如果用户 tom 提交了 CR 并具有 developer 特权,那么当 CR 处于 assigned 状态时,他可以修改 defect_type 属性。

特权和属性安全性规则如何一起工作

如果满足属性安全性或特权安全性规则,那么可以修改一组对应的属性。 (特权安全性和属性安全性规则为 OR 关系,可获取一组可修改属性)。

假设有以下示例。您为处于 assigned 状态的 CR 设置以下规则:

规则 1 - 特权级别安全性

规则
1 - 特权级别安全性

只有具有 assigner 特权的用户才可以修改处于 assigned 状态的 CR 上的发行版解决者名称属性。

规则 2 - 属性级别安全性

规则
2 - 属性级别安全性

当 CR 处于 assigned 状态时, 只有作为 CR 解决者(CR 上的解决者名称属性值必须和登录的用户标识相同)并具有 developer 特权的用户才可以 编辑估算关联的任务注释属性。

方案:

您授予用户 sam tester 特权,授予用户 joe assigner 特权及授予用户 john developer 特权。

sam 提交一个 CR 并且 joe 将它分配给 john。 因此,sam 是 CR 的提交者,john 是 CR 的解决者。 CR 上的解决者名称属性值是 john。CR 处于 assigned 状态,规则为 OR 关系。
  • sam 不满足任何规则,所以他不可以修改 CR 上的任何属性。
  • joe 满足规则 1,因为他具有 assigner 特权。 当 CR 处于 assigned 状态时,他可以修改发行版解决者名称属性。
  • john 满足规则 2。CR 上的解决者名称属性值是 john,所以 john 是这个 CR 的解决者。 另外,john 具有 developer 特权, 因此当 CR 处于 assigned 状态时,他可以修改估算关联的任务注释属性。

反馈