注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
アクションを適用する際の権限チェックは、単一データソースオブジェクトを編集しているか、複数データソースオブジェクトを編集しているかによって異なります。
オブジェクトタイプが単一データソースによってバックアップされている場合、以下の条件を満たしている限り、アクションはユーザーがオブジェクトを編集することを許可します:
新しいオブジェクトを作成する場合、ユーザーはオブジェクトタイプの入力データソースを表示できなければなりません。ユーザーが入力データソースにアクセスできない場合、アクションの実行は失敗します。
オブジェクトタイプは、複数のデータソースから来るプロパティを持つことができます。これらの場合、ユーザーは特定のオブジェクトインスタンスに対して異なるレベルのアクセスを持つことができます。以下の通りです:
オブジェクトタイプに複数のデータソースがある場合、アクションを適用する際の権限チェックはより複雑になります。なぜなら、ユーザーがオブジェクト全体を表示できる必要があることを保証する制約を強制する(単一データソースオブジェクトの場合と同様に)は非常に制限的になるからです。
以下の権限ルールは、オブジェクトに適用できる異なる種類のアクションに対して実装されています。
シナリオ:指定されたオブジェクトインスタンスはデータソース
D[i..k, m..n]
に存在します。ユーザーはD[i..k]
のプロパティの値を設定することでオブジェクトを作成しています。
ユーザーは、 D[i..k]
のバックアップデータソースを表示できなければならない。 D[m..n]
については権限がチェックされません。 D[m..n]
の値はデフォルトで null
になります。
もし D[i..k]
のいずれかが過去にオブジェクトを含んでいた(しかし現在は削除マークが付けられている)場合、ユーザーはオブジェクトを再作成するために D[i..k]
のすべてで行/オブジェクトインスタンスを見る権限を持っていなければなりません。
シナリオ:オブジェクトはデータソース
D[i..k, m..n]
に存在します。ユーザーはD[i..k]
にマップされたプロパティを編集しています。
ユーザーは、 D[i..k]
のプロパティの既存の値を表示できる限り、プロパティを編集することが許可されます。 D[m..n]
にマップされたプロパティについては権限がチェックされません。
D[m..n]
は検証中に null
として表示されます。ユーザーは、 null
の値で検証が通った場合にアクションを適用することができます。
シナリオ:オブジェクトはデータソース
D[i..k, m..n]
に存在します。
ユーザーは、オブジェクト全体(つまり、 D[i..k, m..n]
から来るすべてのプロパティ)を表示できない場合、オブジェクトインスタンスを削除することは許可されません。
シナリオ:Object1はデータソース
D1[i..k]
に存在し、Object2はデータソースD2[m..n]
に存在します。
ユーザーは、データソース D1[i..k]
と D2[m..n]
のいずれかで Object1 と Object2 の両方をロードできる限り、リンクを作成することが許可されます。個々のプロパティやデータソースについては権限がチェックされません。
シナリオ:Object1はデータソース
D1[i..k]
に存在し、Object2はデータソースD2[m..n]
に存在します。
ユーザーは、データソース D1[i..k]
と D2[m..n]
のいずれかで Object1 と Object2 の両方をロードできる限り、リンクを削除することが許可されます。個々のプロパティやデータソースについては権限がチェックされません。