注: 以下の翻訳の正確性は検証されていません。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 の両方をロードできる限り、リンクを削除することが許可されます。個々のプロパティやデータソースについては権限がチェックされません。