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

記事番号:040245

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

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

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

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

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

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

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

アクセス権の考えかた

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

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

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

アクセス権の動作

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

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

設定手順

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

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

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

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

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

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

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

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