フィールドの編集権限をレコード作成者に設定したのに、レコード作成時に入力できない
[新しいレコード]画面を開いてから保存するまでの間、[作成者]フィールドの値は確定していません。
レコードを作成する時点では、レコードの[作成者]を使ったアクセス権は適用されない状態となります。
たとえば、日報アプリの「業務内容」フィールドの編集を、レコードの作成者だけに許可することを想定します。
「業務内容」フィールドに対して、次のアクセス権を設定したとします。
- [作成者]:[閲覧]と[編集]にチェックを入れる
- [Everyone]:[閲覧]にチェックを入れる
上記の設定の場合、レコード作成時点ではレコードの[作成者]が確定していないため、[Everyone]のアクセス権が適用されます。
レコード作成時には、すべてのユーザーが「業務内容」フィールドを編集できなくなります。
[グループ選択]フィールドを活用した回避方法
ここでは、次のシナリオを例に、前述の問題を回避する方法を説明します。
- レコード作成時:
レコード作成時は、まだ[作成者]が確定していないため、誰でも日報アプリの「業務内容」フィールドを編集できるようにする。 - レコード編集時:
一度レコードを保存したあとは、[作成者]だけが「業務内容」フィールドを編集できるようにする。
アクセス権の考えかた
[フィールドのアクセス権]の設定では、1人のユーザーに対して複数のアクセス権が設定されている場合、上の行に設定されたアクセス権が優先されます。
この優先順位を利用して、レコード編集時には、[作成者]以外のユーザーに対し[Everyone]より優先されるアクセス権が適用されるように設定します。
その手段として、[グループ選択]フィールドを活用します。
フォームに[グループ選択]フィールドを追加し、[初期値]を[Everyone]に設定します。また、次の順でアクセス権を設定します。
- [作成者]:[閲覧]と[編集]にチェックを入れる
- [グループ選択]フィールド:[閲覧]だけチェックを入れる
- [Everyone]:[閲覧]と[編集]にチェックを入れる
アクセス権の動作
この設定によって、次のアクセス権が適用されます。
- レコード作成時:
すべてのユーザーに、一番下の[Everyone]のアクセス権が適用されます。 - レコード編集時:
レコードの作成者に、一番上の[作成者]のアクセス権が適用されます。
それ以外のユーザーには、2番目に設定した[グループ選択]フィールドのアクセス権が適用されます。
設定手順
-
フォームに、[グループ選択]フィールドを配置します。
-
手順1で配置した[グループ選択]フィールドの設定で、[フィールド名]と[初期値]を次のように設定します。
- [フィールド名]:グループ選択A
- [初期値]:[Everyone]
-
[フォームを保存]をクリックします。
-
[設定]タブをクリックし、 [アクセス権]の[フィールド]を選択します。
-
[フィールドのアクセス権]画面で、次のアクセス権を設定します。
- 「業務内容」フィールド
- [作成者]:[閲覧]と[編集]にチェックを入れる
- 「グループ選択A」:[閲覧]だけチェックを入れる
- [Everyone]:[閲覧]と[編集]にチェックを入れる
- 「グループ選択A」フィールド
- [Everyone]:[閲覧]と[編集]のチェックを外す
- 「業務内容」フィールド
-
[保存]をクリックします。
-
[アプリの設定]画面で、[アプリを更新]をクリックします。
-
[アプリを更新]ダイアログで、[アプリを更新]をクリックします。