権限セキュリティーは、変更依頼 (CR) が選択された状態で、ユーザーが必要な権限を持っている場合に、修正可能な属性のリストを定義します。
例えば、「レビュー中」状態では、「検証者」権限の修正可能な属性として「概要」と「詳細」がリストされています。 したがって、「検証者」権限を持つユーザーは、CR が「レビュー中」状態の場合、これらの属性を修正することができます。
状態の属性セキュリティーは、CR が選択された状態で、特定の属性値がユーザー ID と一致する場合に、修正可能な属性のリストを定義します。 例えば、resolver="john" や enterer="sam" などです。
属性セキュリティーが機能するには、選択した属性にユーザー ID が値として含まれている必要があります。 つまり、属性のタイプは CCM_USER です。
属性セキュリティーは、属性あるいは属性とユーザー権限の組み合わせに対して定義することができます。
例えば、CR が「割り当て」状態である場合には、CR を提出したユーザー (CR の「提出者」属性の値がログイン・ユーザー ID と一致している必要があります)、かつ「開発者」権限を持っているユーザーのみが、「不具合タイプ」属性を修正できる、というルールを記述します。「不具合タイプ」属性は、修正可能な属性にリストされます。 したがって、ユーザー tom が CR を提出し、彼が「開発者」権限を持っている場合、彼は CR が「割り当て」状態の場合に「不具合タイプ」属性を修正することができます。
属性セキュリティーまたは権限セキュリティーのいずれかのルールが満たされている場合、対応する属性セットは修正可能です。 権限セキュリティーと属性セキュリティーのルールは、修正可能な属性のセットを取得するために論理和演算されます。
次の例について検討します。 「割り当て」状態の CR に対して以下のルールを設定します。
ルール 1 - 権限レベル・セキュリティー
「割り当て者」権限を持つユーザーのみが、「割り当て」状態の CR で「リリース」および「解決者名」属性を修正することができます。
ルール 2 - 属性レベル・セキュリティー
CR の解決者 (CR の「解決者名」属性値がログイン・ユーザー ID と一致している必要があります) で、「開発者」権限を持つユーザーのみが、CR が「割り当て」状態である場合に「予定期間」、「割り当てタスク」、および「コメント」属性を編集することができます。
シナリオ:
ユーザー sam に「テスター」権限を付与し、ユーザー joe に「割り当て者」権限を付与し、ユーザー john に「開発者」権限を付与します。