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