フィールドの編集権限をレコード作成者に設定したのに、レコード作成時に入力できない

記事番号:040245

[新しいレコード]画面を開いてから保存するまでの間、[作成者]フィールドの値は確定していません。
レコードを作成する時点では、レコードの[作成者]を使ったアクセス権は適用されない状態となります。

たとえば、日報アプリの「業務内容」フィールドの編集を、レコードの作成者だけに許可することを想定します。
「業務内容」フィールドに対して、次のアクセス権を設定したとします。

  • [作成者][閲覧][編集]にチェックを入れる
  • [Everyone][閲覧]にチェックを入れる

上記の設定の場合、レコード作成時点ではレコードの[作成者]が確定していないため、[Everyone]のアクセス権が適用されます。
レコード作成時には、すべてのユーザーが「業務内容」フィールドを編集できなくなります。

[グループ選択]フィールドを活用した回避方法

ここでは、次のシナリオを例に、前述の問題を回避する方法を説明します。

  • レコード作成時:
    レコード作成時は、まだ[作成者]が確定していないため、誰でも日報アプリの「業務内容」フィールドを編集できるようにする。
  • レコード編集時:
    一度レコードを保存したあとは、[作成者]だけが「業務内容」フィールドを編集できるようにする。

アクセス権の考えかた

[フィールドのアクセス権]の設定では、1人のユーザーに対して複数のアクセス権が設定されている場合、上の行に設定されたアクセス権が優先されます。
この優先順位を利用して、レコード編集時には、[作成者]以外のユーザーに対し[Everyone]より優先されるアクセス権が適用されるように設定します。

その手段として、[グループ選択]フィールドを活用します。
フォームに[グループ選択]フィールドを追加し、[初期値][Everyone]に設定します。また、次の順でアクセス権を設定します。

  • [作成者][閲覧][編集]にチェックを入れる
  • [グループ選択]フィールド:[閲覧]だけチェックを入れる
  • [Everyone][閲覧][編集]にチェックを入れる

アクセス権の動作

この設定によって、次のアクセス権が適用されます。

  • レコード作成時:
    すべてのユーザーに、一番下の[Everyone]のアクセス権が適用されます。
  • レコード編集時:
    レコードの作成者に、一番上の[作成者]のアクセス権が適用されます。
    それ以外のユーザーには、2番目に設定した[グループ選択]フィールドのアクセス権が適用されます。

設定手順

  1. フォームに、[グループ選択]フィールドを配置します。

  2. 手順1で配置した[グループ選択]フィールドの設定で、[フィールド名][初期値]を次のように設定します。

    • [フィールド名]:グループ選択A
    • [初期値][Everyone]
  3. [フォームを保存]をクリックします。

  4. [設定]タブをクリックし、 [アクセス権][フィールド]を選択します。

  5. [フィールドのアクセス権]画面で、次のアクセス権を設定します。

    • 「業務内容」フィールド
      • [作成者][閲覧][編集]にチェックを入れる
      • 「グループ選択A」:[閲覧]だけチェックを入れる
      • [Everyone][閲覧][編集]にチェックを入れる
    • 「グループ選択A」フィールド
      • [Everyone][閲覧][編集]のチェックを外す
  6. [保存]をクリックします。

  7. [アプリの設定]画面で、[アプリを更新]をクリックします。

  8. [アプリを更新]ダイアログで、[アプリを更新]をクリックします。