ApexメソッドによるCRUDチェック
Apex Class / Trigger内
- 下記2つは紛らわしいのでかならず抑える
- 2つとも、
sObjectType
が使用される.
Schema.DescribeSObjectResult
- オブジェクトに対してユーザにCRUD権限があるかどうかをチェック
Schema.sObjectType.CustomObject__c.isAccessible()
Schema.sObjectType.CustomObject__c.isUpdatable()
Schema.sObjectType.CustomObject__c.isCreatable()
Schema.sObjectType.CustomObject__c.isDeletable()
Schema.DescribeFieldResult
- オブジェクトのフィールドにユーザにCRUD権限があるかチェック.
Schema.sObjectType.CustomObject__c.fields.CustomField__c.isAccessible()
Schema.sObjectType.CustomObject__c.fields.CustomField__c.isUpdatable()
Schema.sObjectType.CustomObject__c.fields.CustomField__c.isCreatable()
アクセスレベル
None
アクセスレベルは AccountShare
のみで適用される.
All
アクセルレベルは共有管理のみで使用可能.
Visualforce
- VisualforceでCRUDチェックをする際は、
s
はつかずにObjectType
になるので注意
{!$ObjectType.Lead.Accessible}
標準コントローラー
制限ルール
- 制限ルールを使用すると、特定のユーザーに指定したレコードのみへのアクセスを許可することで、セキュリティを強化できます.
制限ルールが使用可能なオブジェクト
- カスタムオブジェクト
- 外部オブジェクト
- 契約
- ToDo
- 行動
Editionによる制約
- オブジェクトあたり最大 2 つの有効な制限ルールを作成可能
- Enterprise Edition
- Developer Edition
- オブジェクトあたり最大 5 つの有効な制限ルールを作成可能
- Performance Edition
- Unlimited Edition
- リストビュー
- ルックアップ
- 関連リスト
- レポート
- 検索
- SOQL
- SOSL
共有グループ
- 共有グループには2つの種類がある.
- 外部ユーザが所有するレコードを内部ユーザへ共有するもの.
Communityユーザが所有するレコードを内部ユーザが全てアクセスできるようにするにはこちら.
- ロールおよびテリトリー共有グループ.
これはロールに対してSalesforceが自動で作成するもの.
Apexによる共有管理などで、あるロールに対してレコードを共有したい場合、こちら