特权安全性定义了当变更请求 (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 - 特权级别安全性
只有具有 assigner 特权的用户才可以修改处于 assigned 状态的 CR 上的发行版和解决者名称属性。
规则 2 - 属性级别安全性
当 CR 处于 assigned 状态时, 只有作为 CR 解决者(CR 上的解决者名称属性值必须和登录的用户标识相同)并具有 developer 特权的用户才可以 编辑估算、关联的任务和注释属性。
方案:
您授予用户 sam tester 特权,授予用户 joe assigner 特权及授予用户 john developer 特权。