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

記事番号:040245

レコード作成者の情報は、レコード作成画面を開いてから保存するまでの間は確定していません。このため、レコードを作成する時点では、レコード作成者に設定したアクセス権は適用されない状態となります。

たとえば、日報アプリの「業務内容」というフィールドに対して、レコード作成者のみに編集を許可するため、以下のようにアクセス権を設定したとします。

フィールド ユーザー/組織/グループとアクセス権
業務内容
  • 作成者:[✔]閲覧 [✔]編集
  • Everyone:[✔]閲覧 [  ]編集

この場合、レコード作成時点ではレコード作成者の情報が未確定のため、「Everyone」のアクセス権が適用されます。そのため、「業務内容」フィールドは、レコード作成時点ではどのユーザーも編集できない状態になっています。

参考となりますが、この問題を回避する方法として、グループ選択フィールドを利用する例を以下で紹介します。

参考:グループ選択フィールドを利用した回避方法

考え方:

ここでは例として、日報アプリの「業務内容」フィールドに対して、レコード作成者にのみ編集権限を設定する方法を説明します。

前述のとおり、アクセス権を以下のように設定した場合は、レコード作成時に「業務内容」フィールドを編集できない状態になります。

フィールド ユーザー/組織/グループとアクセス権
業務内容
  • 作成者:[✔]閲覧 [✔]編集
  • Everyone:[✔]閲覧 [  ]編集

矢印

そこで、レコード作成時に「業務内容」フィールドを編集可能にするために、「Everyone」の編集権限にチェックを付けたとします。そうすると、今度はレコード編集時にも全員が「業務内容」フィールドを編集できるようになってしまいます。

フィールド ユーザー/組織/グループとアクセス権
業務内容
  • 作成者:[✔]閲覧 [✔]編集
  • Everyone:[✔]閲覧 [✔]編集

矢印

これを回避するには、レコード作成者以外のユーザーに対して、レコード編集時に「Everyone」より優先されるアクセス権を追加する必要があります。その方法として、フォームにグループ選択フィールドを追加し、初期値を「Everyone」に設定したうえで、アクセス権を以下のとおり設定します。

フィールド ユーザー/組織/グループとアクセス権
業務内容
  • 作成者:[✔]閲覧 [✔]編集
  • グループ選択:[✔]閲覧 [  ]編集
  • Everyone:[✔]閲覧 [✔]編集

これにより、アクセス権は以下のように適用されます。

  • レコード作成時:
    一番下の「Everyone」のアクセス権が適用されます。

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



具体的な設定手順:

  1. 日報アプリを開き、フォームにグループ選択フィールドを配置します。

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

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

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

  5. 以下のようにアクセス権を設定します。

    フィールド ユーザー/組織/グループとアクセス権 解説
    業務内容
    • 作成者:[✔]閲覧 [✔]編集
    • グループ選択A:[✔]閲覧 [  ]編集
    • Everyone:[✔]閲覧 [✔]編集
    レコード作成時のアクセス権:
    一番下の「Everyone」のアクセス権が適用されます(「作成者」と「グループ選択A」の値が保存されていない状態のため)。

    レコード編集時のアクセス権:
    レコード作成者は一番上の「作成者」のアクセス権、それ以外のユーザーは2番目に設定した「グループ選択A」のアクセス権が適用されます(「作成者」と「グループ選択A」の値が保存されている状態のため)。
    グループ選択A Everyone:[  ]閲覧 [  ]編集 このフィールドは、「業務内容」フィールドのアクセス権の設定のために、常に初期値(Everyone)を維持する必要があります。そのため、閲覧も編集もできないように設定しておきます。