特权安全性在用户具有必需的特权时允许转换。例如,如果 entered2review 转换需要 verifier 特权,而用户 sam 具有 verifier 特权,那么 Sam 可以执行转换。
属性安全性在指定属性的值与用户标识相匹配(即 resolver="sam")时允许转换。为使属性安全性起作用,所选的属性必须包含一个用户标识作为其值。 即该属性具有类型 CCM_USER。
可以对属性或属性与用户特权的组合定义属性安全性。
例如,规则规定只有提交了 CR(CR 上提交者属性的值必须和登录的用户标识相同)并且具有 developer 特权的用户才可以将 CR 转换为 entered2assigned 状态。 因此,如果用户 sam 提交了一个 CR 并且具有 developer 特权, 那么他可以将 CR 转换为 entered2assigned 状态。
分支安全性仅当属性具有特定值时才允许转换。例如,request_type 属性可以设置为 Defect 或 Enhancement。 仅当 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 - 特权级别安全性
只有具有 assigner 特权的用户才可以执行 in_review2assigned 转换。
规则 2 - 属性级别安全性
只有提交了 CR(CR 上提交者属性的值必须和登录的用户标识相同)并且具有 developer 特权 的用户才可以执行 in_review2assigned 转换。
规则 3 - 分支级别安全性
只有将 reviewed_by_mgr 属性设置为 TRUE 时,才可以执行in_review2assigned 转换。 您未给特权分配值。
规则 4 - 分支级别安全性
只有将 need_approval 属性设置为 FALSE 并且用户具有 reviewer 特权时,才可以执行 in_review2assigned 转换。
方案:
您授予用户 sam developer 特权, 授予用户 john assigner 和 reviewer 特权, 及授予用户 joe developer 和 reviewer 特权。
sam 提交一个 CR 并且将它分配给john。因此,sam 是提交者 而 john 是解决者。然后,您将 reviewed_by_mgr 属性设置为 TRUE 并将 need_approval 属性设置为 FALSE。
因此,要执行转换,必须满足所有分支规则并且至少满足指定的一项特权或属性规则:
(RULE 1 OR RULE 2) AND (RULE 3 AND RULE 4)