转换安全性规则

转换具有三种类型的安全性:特权安全性、属性安全性和分支安全性。所有这些安全性都用于确定是否允许转换。确定要在每个转换上设置哪种类型的安全性。

特权安全性

特权安全性在用户具有必需的特权时允许转换。例如,如果 entered2review 转换需要 verifier 特权,而用户 sam 具有 verifier 特权,那么 Sam 可以执行转换。

属性安全性

属性安全性在指定属性的值与用户标识相匹配(即 resolver="sam")时允许转换。为使属性安全性起作用,所选的属性必须包含一个用户标识作为其值。 即该属性具有类型 CCM_USER

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

如果指定了特权,那么必须满足以下两个条件才能转换变更请求 (CR):
  • 属性值必须等于用户标识。
  • 用户必须具有指定的特权。

例如,规则规定只有提交了 CR(CR 上提交者属性的值必须和登录的用户标识相同)并且具有 developer 特权的用户才可以将 CR 转换为 entered2assigned 状态。 因此,如果用户 sam 提交了一个 CR 并且具有 developer 特权, 那么他可以将 CR 转换为 entered2assigned 状态。

分支安全性

分支安全性仅当属性具有特定值时才允许转换。例如,request_type 属性可以设置为 DefectEnhancement。 仅当 request_type 设置为 Defect 时,才可以允许 fix_defect 转换,request_type 设置为 Enhancement 时,可以允许 make_enhancment 转换。

如果指定了特权,那么必须满足以下两个条件才能转换 CR:

特权、属性和分支安全性规则如何一起工作?

如果满足属性安全性或特权安全性规则,并且未设置分支安全性,那么可以执行转换。

然而,如果设置了分支安全性,那么除非同时满足以下两个先决条件,否则无法执行转换:
  • 必须满足所有分支规则。
  • 如果设置了一个或多个属性或特权安全性规则,那么必须至少满足其中一个规则。

    即,ANDed 分支安全性规则等于 ANDed 与 ORed 特权和属性安全性规则:

    ( (Privilege security rules) OR (Attribute security rules) ) AND (Branch Security rules)

假设有以下示例。您为将转换至 in_review2assigned 状态的 CR 设置以下规则。

规则 1 - 特权级别安全性

规则
1 - 特权级别安全性

只有具有 assigner 特权的用户才可以执行 in_review2assigned 转换。

规则 2 - 属性级别安全性

规则
2 - 属性级别安全性

只有提交了 CR(CR 上提交者属性的值必须和登录的用户标识相同)并且具有 developer 特权 的用户才可以执行 in_review2assigned 转换。

规则 3 - 分支级别安全性

规则
3 - 分支级别安全性

只有将 reviewed_by_mgr 属性设置为 TRUE 时,才可以执行in_review2assigned 转换。 您未给特权分配值。

规则 4 - 分支级别安全性

规则 4 - 分支级别安全性

只有将 need_approval 属性设置为 FALSE 并且用户具有 reviewer 特权时,才可以执行 in_review2assigned 转换。

方案:

您授予用户 sam developer 特权, 授予用户 john assignerreviewer 特权, 及授予用户 joe developerreviewer 特权。

sam 提交一个 CR 并且将它分配给john。因此,sam 是提交者 而 john 是解决者。然后,您将 reviewed_by_mgr 属性设置为 TRUE 并将 need_approval 属性设置为 FALSE

因此,要执行转换,必须满足所有分支规则并且至少满足指定的一项特权或属性规则:

(RULE 1 OR RULE 2) AND (RULE 3 AND RULE 4)

  • reviewed_by_mgr 属性设置为 TRUE,因此所有用户都满足规则 3。
  • 虽然 joe 满足所有分支安全性规则(规则 3 和 规则 4),但他不满足任何特权或属性安全性规则。 他不可以转换 CR。
  • john 可以转换 CR,因为他满足规则 1、规则 3 和规则 4。
  • sam 满足规则 2 和规则 3,但他不满足规则 4。他不可以转换 CR,因为必须满足所有分支安全性规则。

但是,假设只设置了特权和属性规则,而未设置分支规则。 如果那样,特权安全性和属性安全性规则为 OR 关系,因此:
  • joe 不能执行转换,因为他不满足任何特权或属性安全性规则。
  • sam 满足规则 2,因此他可以转换 CR。
  • john 满足规则 1,因此他可以转换 CR。

反馈