AccessLevel クラス
名前空間
使用方法
デフォルトでは、Apex コードはシステムモードで実行されます。つまり、コードを実行しているユーザーよりも非常に上位の権限で実行されます。システムモードでは、現在のユーザーのオブジェクト権限と項目レベル権限が無視され、クラスの sharing キーワードでレコード共有ルールが制御されます。ユーザーモードでは、現在のユーザーのオブジェクト権限、項目レベルのセキュリティ、および共有ルールが適用されます。
System.Database および System.Search クラスの DML メソッドの多くには、実行モードを指定する accessLevel パラメーターが含まれています。
例
この Apex コードを実行するユーザーに Account オブジェクトへの更新アクセス権がない場合、Database.insert() メソッドはエラーを返します。
一方、次の例は、システムモードで実行するメソッドを示しています。挿入が成功するかどうかは、Apex コードを実行するユーザーに Account オブジェクトへの作成アクセス権があるかどうかによりません。
AccessLevel のメソッド
AccessLevel のメソッドは次のとおりです。
withPermissionSetId(permissionSetId) (開発者プレビュー)
この機能は、ApexUserModeWithPermset 機能が有効になっているスクラッチ組織で使用できます。この機能が有効になっていない場合、この機能を含む Apex コードは、コンパイルすることはできても、実行することはできません。
署名
public System.AccessLevel withPermissionSetId(String permissionSetId)
パラメーター
- permissionSetId
- 型: String
- ユーザーモード DML 操作の実行中は、実行中のユーザーの権限に加え、指定された権限セット内の権限が適用されます。
戻り値
型: アクセスレベルクラス
例
AccessLevel のプロパティ
AccessLevel のプロパティは次のとおりです。
SYSTEM_MODE
署名
public System.AccessLevel SYSTEM_MODE {get;}
プロパティ値
型: System.AccessLevel