特定のテーブル、ビュー、アクションにアクセスして操作できるユーザーを制限する

アプリがユーザーの ID や設定に基づいて別のデータやプレゼンテーションを表示できることを見てきました。場合によっては、特定のクラスのユーザーに対してアプリで別の機能を提供する、または機能を制限することが必要です。考慮すべきケースは次の 3 つです。

  1. 少数のユーザークラスがある(一般には、たとえば通常のユーザーと管理者の 2 つだけ)。片方のクラスのユーザーに、いくつかの追加機能を利用可能にする必要がある。
  2. 少数のユーザークラスがあるが、それぞれが大きく異なる機能を必要としている。
  3. 多数のユーザークラスがあり、それぞれが大きく異なる機能を必要としている。

ケース 2 と 3 では、各クラスのユーザーのために別のアプリを構築するのが、AppSheet での解決策です。同じデータを基礎とした複数のアプリを簡単に構築できます。追加、更新、削除の操作をコントロールするに記載されているように、データ変更の権限を制御できます。しかし、それぞれ異なるアプリを管理する必要があります。

ケース 1 はごく一般的なもので、この場合はユーザークラスごとに別のタイプの機能を与えるのが適切です。アプリレベルでは、各種の方法でユーザークラスを差別化できます。例:

  1. ユーザーがテーブルまたはスライスのうち、どのフィールドを表示または更新できるかを制御します。テーブルの定義で、ユーザーが列を表示または更新できるかどうか(Add / Edit / Delete / ReadOnly)を静的に定義する代わりに、列のプロパティShow? 式と Editable? 式を定義します。
  2. どのビューをユーザー向けに表示するかを制御します。ビューの定義の一部として、Show_If 制約式を使用します。
  3. ユーザーがどのアクションを起動できるかを制御します。アクションの [Behavior] セクションで [Only if this condition is true] 設定を構成して、アクションを表示する行を制御します。

これらの式で、現在のユーザーのメールアドレス(USEREMAIL())、またはユーザー設定に定義されているオプション(USERSETTINGS())を使用して、ユーザーを適切なユーザークラスに分類します。たとえば、テーブルの更新モードを動的にコントロールするためのユーザーのメールに基づいてユーザーのアクセス権限をコントロールするサンプル式は次のようになります。SWITCH() をご確認ください。

SWITCH(USEREMAIL(),
"admin@mycompany.com", "ALL_CHANGES",
"manager@mycompany.com", "UPDATES_ONLY",
"READ_ONLY")

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
Google アプリ
メインメニュー
3455504590237845570
true
ヘルプセンターを検索
false
true
true
true
false
false
false
false