Apex Inherited Sharing キーワードの使用サンプル
環境
salesforce
構文
コール元のクラスの共有ルールを強制実行するには、
クラスの宣言時に inherited sharing キーワードを使用します。
inherited sharing を指定した Apex クラスは、Apex トランザクションへの
エントリポイントとして使用される場合 (フローなど)、または以下のものとして使用される場合には、with sharing として実行されます。
サンプルコード
1.Apex側コード
public inherited sharing class InheritedSharingClass { public List<Contact> getAllTheSecrets() { return [SELECT Name FROM Contact]; } }
2.Visualforce コード
<apex:page controller="InheritedSharingClass"> <apex:repeat value="{!allTheSecrets}" var="record"> {!record.Name} </apex:repeat> </apex:page>
説明
inherited sharing のある Apex クラスとその Apex コードの Visualforce 呼び出しを
宣言します。inherited sharing 宣言により、
実行ユーザーが共有アクセス権を持つ取引先責任者のみが表示されます。
この宣言が省略されている場合、安全でないデフォルトの動作により、
ユーザーが参照権限を持たない取引先責任者も表示されます。