SetupEntityAccess
親の PermissionSet の有効化された設定エンティティアクセス権設定 (Apex クラスへのアクセスなど) を表します。このオブジェクトは、API バージョン 25.0 以降で使用できます。
ユーザにエンティティへのアクセス権を付与するには、ユーザに割り当てられる PermissionSet に適切な SetupEntityAccess レコードを関連付けます。
サポートされているコール
create()、delete()、describeSObjects()、query()、retrieve()
項目
使用方法
SetupEntityAccess は PermissionSet オブジェクトの子であるため、使用方法は、FieldPermissions および ObjectPermissions などの他の PermissionSet 子オブジェクトと似ています。
たとえば、次のコードでは、アクセス権が有効化されている任意の設定エンティティへのアクセス権を付与するすべての権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess次のコードでは、Apex クラスへのアクセス権のみを付与する権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess
3WHERE SetupEntityType='ApexClass'次のコードでは、任意の設定エンティティへのアクセス権を付与し、プロファイルによって所有されていない権限セットが返されます。
1SELECT Id, ParentId, Parent.Name, SetupEntityId
2FROM SetupEntityAccess
3WHERE ParentId
4IN (SELECT Id
5 FROM PermissionSet
6 WHERE isOwnedByProfile = false)特定の設定エンティティへのアクセス権がある権限セットのみを返すこともできます。これを実行するには、親オブジェクトを照会します。たとえば、このコードでは、helloWorld Apex クラスへのアクセス権を付与するすべての権限セットが返されます。
1SELECT Id, Name,
2 (SELECT Id, Parent.Name, Parent.Profile.Name
3 FROM SetupEntityAccessItems)
4FROM ApexClass
5WHERE Name = 'helloWorld'
ConnectedApplication、ServiceProvider、または TabSet へのアクセス権がある権限セットを SetupEntityId を使用して返すことはできますが、これらの SetupEntityType 項目へのアクセス権がある権限セットを、Name や Description などの他の AppMenuItem 属性を使用して返すことはできません。たとえば、ユーザに社員募集アプリケーションへのアクセス権があるかどうかを調べるには、2 つのクエリを実行します。まず、AppMenuItem ID を取得する次のクエリを実行します。
1SELECT Id, Name, Label
2FROM AppMenuItem
3WHERE Name = 'Recruiting'このクエリから AppMenuItem ID 02uD0000000GIiMIAW が返されるとします。この ID を使用して、ユーザに社員募集アプリケーションへのアクセス権があるかどうかを調べる次のクエリを実行できます。
1SELECT Id, SetupEntityId, SetupEntityType
2FROM SetupEntityAccess
3WHERE ParentId
4IN
5 (SELECT PermissionSetId
6 FROM PermissionSetAssignment
7 WHERE AssigneeId = '005D0000001QOzF')
8AND (SetupEntityId = '02uD0000000GIiMIAW')