フィールドの編集権限をレコード作成者に設定したのに、レコード作成時に入力できない
レコード作成者の情報は、レコード作成画面を開いてから保存するまでの間は確定していません。このため、レコードを作成する時点では、レコード作成者に設定したアクセス権は適用されない状態となります。
たとえば、日報アプリの「業務内容」というフィールドに対して、レコード作成者のみに編集を許可するため、以下のようにアクセス権を設定したとします。
フィールド | ユーザー/組織/グループとアクセス権 |
---|---|
業務内容 |
|
この場合、レコード作成時点ではレコード作成者の情報が未確定のため、「Everyone」のアクセス権が適用されます。そのため、「業務内容」フィールドは、レコード作成時点ではどのユーザーも編集できない状態になっています。
参考となりますが、この問題を回避する方法として、グループ選択フィールドを利用する例を以下で紹介します。
参考:グループ選択フィールドを利用した回避方法
考え方
ここでは例として、日報アプリの「業務内容」フィールドに対して、レコード作成者にのみ編集権限を設定する方法を説明します。
前述のとおり、アクセス権を以下のように設定した場合は、レコード作成時に「業務内容」フィールドを編集できない状態になります。
フィールド | ユーザー/組織/グループとアクセス権 |
---|---|
業務内容 |
|
そこで、レコード作成時に「業務内容」フィールドを編集可能にするために、「Everyone」の編集権限にチェックを付けたとします。そうすると、今度はレコード編集時にも全員が「業務内容」フィールドを編集できるようになってしまいます。
フィールド | ユーザー/組織/グループとアクセス権 |
---|---|
業務内容 |
|
これを回避するには、レコード作成者以外のユーザーに対して、レコード編集時に「Everyone」より優先されるアクセス権を追加する必要があります。その方法として、フォームにグループ選択フィールドを追加し、初期値を「Everyone」に設定したうえで、アクセス権を以下のとおり設定します。
フィールド | ユーザー/組織/グループとアクセス権 |
---|---|
業務内容 |
|
これにより、アクセス権は以下のように適用されます。
- レコード作成時:
一番下の「Everyone」のアクセス権が適用されます。 - レコード編集時:
レコード作成者は一番上の「作成者」のアクセス権、それ以外のユーザーは2番目に設定した「グループ選択」(値:Everyone)のアクセス権が適用されます。
具体的な設定手順
-
日報アプリを開き、フォームにグループ選択フィールドを配置します。
-
手順1で配置したグループ選択フィールドの設定で、「フィールド名」と「初期値」を次のように設定します。
- フィールド名:グループ選択A
- 初期値:Everyone
-
[フォームを保存]をクリックします。
-
[設定]タブをクリックし、 「アクセス権」の[フィールド]を選択します。
-
以下のようにアクセス権を設定します。
フィールド ユーザー/組織/グループとアクセス権 解説 業務内容 - 作成者:[✔]閲覧 [✔]編集
- グループ選択A:[✔]閲覧 [ ]編集
- Everyone:[✔]閲覧 [✔]編集
レコード作成時のアクセス権:
一番下の「Everyone」のアクセス権が適用されます(「作成者」と「グループ選択A」の値が保存されていない状態のため)。
レコード編集時のアクセス権:
レコード作成者は一番上の「作成者」のアクセス権、それ以外のユーザーは2番目に設定した「グループ選択A」のアクセス権が適用されます(「作成者」と「グループ選択A」の値が保存されている状態のため)。グループ選択A Everyone:[ ]閲覧 [ ]編集 このフィールドは、「業務内容」フィールドのアクセス権の設定のために、常に初期値(Everyone)を維持する必要があります。そのため、閲覧も編集もできないように設定しておきます。