ファイル権限区分とアクション
ファイルに対する権限は、大きく分けると以下の3つに分類されます。
- 所有者
- コラボレータ
- 閲覧者
それそれの権限でファイルに対して実行可能なアクションが異なります。
スクロールできます
アクション \ 権限 | 所有者 | コラボレータ | 閲覧者 |
---|---|---|---|
参照またはプレビュー | 〇 | 〇 | 〇 |
ダウンロード | 〇 | 〇 | 〇 |
共有 | 〇 | 〇 | 〇 |
新しいバージョンをアップロード | 〇 | 〇 | |
詳細の編集 | 〇 | 〇 | |
権限の変更 | 〇 | 〇 | |
レコードから削除 | 〇 | 〇 | |
削除 | 〇 |
ファイルを削除できるのはファイルの所有者のみとなっています。
「レコードから削除」のアクションについては、ファイルは完全に削除されず、添付先のレコードから削除される、という処理になります。
ファイルに対する権限の付与・確認方法
ファイルに対する権限を確認するには、確認対象のファイルのアクションから「共有」を選択します。
下画像では、ファイルの所有者が「abo dev」で「ユーザ01」に対して「コラボレータ」権限が付与されていることが分かります。
この画面の「共有先」からユーザやグループを選択することで、ファイルに対する権限を付与することが可能です。
レコードに添付されたファイルの権限
レコードの詳細ページに「ファイル」関連リストを表示することでレコードにファイルを添付することができます。
レコードにファイルを添付するとファイルの「共有」の「アクセス権のあるユーザ」に添付先のレコードが表示されます。
そこで選択できる権限として以下の2つがあります。
- 閲覧者(デフォルト)
- レコードごとに設定
「閲覧者」権限
「共有」からファイルに対する権限を確認すると、
添付先のレコード(取引先01)に対する権限が「閲覧者」と表示されています。
これは取引先01レコードを参照できるユーザに対して「閲覧者」権限を付与しますよ、という意味です。
逆に取引先01レコードに対する参照権限がないユーザは添付ファイルにアクセスすることができません。
また、レコードにファイルを添付するとデフォルトで「閲覧者」権限が設定されます。
「レコードごとに設定」
レコードに添付されたファイルに対する権限として「レコードごとに設定」を選択することができます。
端的に説明すると、レコード権限を継承するようにファイルに対する権限を設定することができます。
具体的には次のような権限設定になります。
- レコードに対する参照・更新権限があるユーザには、添付ファイルに対する 「コラボレータ」アクセス権を付与
- レコードに対する参照権のみがあるユーザには、添付ファイルに対する 「閲覧者」アクセス権を付与
上画像の例の場合、取引先01に対して参照・更新権限をもつユーザには添付ファイルに対する「コラボレータ」権限を付与し、参照権限のみの場合は、「閲覧者」権限を付与するということです。
レコードにファイルを添付するとデフォルトで「閲覧者」権限が設定されますが、
以下の設定を行うことで、デフォルトの権限を「レコードごとに設定」に変更可能です。
設定 > Salesforce Files > 一般設定
[レコードに添付されたファイルのファイルアクセス権を [レコードごとに設定] に設定] を有効化
ライブラリに格納されたファイルの権限
ライブラリにファイルをアップロードすると「ライブラリごとに設定」というファイル権限が割り当てられます。
ファイルへのアクセス権はライブラリへのアクセス権に従うという意味です。
また、この設定を変更することはできません。
ファイル権限の変更
続いて、ファイルの権限の変更方法についてです。
今回は以下の3つの方法で更新してみました。
- 「共有」から変更
- Apexによる変更
- データローダによる変更
注意点としては、ライブラリに共有されているファイルの権限を変更することはできません。
たとえレコード、ユーザに共有されている場合でも、ライブラリへ共有されている限り権限変更不可となります。
「共有」から変更
ファイル権限変更の1つ目は「共有」から変更する方法です。
最もシンプルかつ簡単に権限変更できますが、大量のファイルの権限を一括で変更したい時には向いてない方法ですね
Apexによる変更
Apexを使用してファイル権限を変更する方法です。
ファイルが添付されているオブジェクトを指定し、一括でファイル権限を変更することができます。
処理の流れとしては以下のようになります。
- FileTypeが「メモ」でない、かつ、ライブラリに共有されていない「ContentDocument」を取得
- ①で取得したContentDocumentIdを使用して「ContentDocumentLink」を取得
- ContentDocumentLinkの「ShareType」が「V(閲覧者権限)」、かつ、Accountに添付されているファイルの場合、「ShareType」を「I(権限は関連するレコードに依存)」に更新
参照