' P '

whatever I will forget

Sharing and Visibility

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

適用できるSalesforce 機能箇所

  • リストビュー
  • ルックアップ
  • 関連リスト
  • レポート
  • 検索
  • SOQL
  • SOSL

共有グループ

  • 共有グループには2つの種類がある.
      1. 外部ユーザが所有するレコードを内部ユーザへ共有するもの.
        Communityユーザが所有するレコードを内部ユーザが全てアクセスできるようにするにはこちら.
      1. ロールおよびテリトリー共有グループ.
        これはロールに対してSalesforceが自動で作成するもの.
        Apexによる共有管理などで、あるロールに対してレコードを共有したい場合、こちら