AppSheet UserSettingsを利用したユーザ判定方法

はじめに

UserSettingsを用いてログインユーザ判別する方法は、AppSheetとしては推奨されていません。

ただ、契約アカウント数の節約の観点でニーズがあるのは事実ですので、今回取り上げさせて頂きました。

UserSettingsとは

UserSettingsは、アプリを利用するユーザーの個別設定を保存するための機能です。この設定は、ユーザーごとに異なるデータやアプリの動作をカスタマイズすることが出来ます。

主な特徴としては、

  1. ユーザー固有の設定:
    • UserSettingsに保存された情報は、特定のユーザー(利用デバイス)に関連付けられます。各ユーザーが自身のデバイスで設定した情報を保持することができます。
  2. カスタマイズ可能な項目:
    • ユーザーが設定できる項目は開発者が自由に定義することが可能です。例えば、言語設定、表示モード(ライト/ダーク)、特定のフィルタ条件などです。
  3. アプリ全体への影響:
    • 設定された値をアプリ内のビューや動作に反映することが可能です。
      特定の地域に基づいたデータのフィルタリングや、ユーザーの役割(管理者/一般ユーザ)に応じたメニュー項目の表示などが行えます。

利用イメージ

イメージを掴むために、テーブルからUserSettingで「地域設定」を用いる例です。

  1. データの中に「User settings」を選択します
  2. 設定項目に「地域設定」を追加します
  3. 「Show」にチェックを入れて保存(Save)します
  4. メニューに「Settings」が表示されるようになります。

    Settingsを押すことで、「地域設定」を選べるようになります。

    制限事項

    利用する上での注意事項です。

    • UserSettingsは端末ごとに保存されるため、複数の端末を使用する場合、各端末で再設定が必要。
    • クラウド同期が行われないため、サーバー側で設定値を利用する処理には向かない。

    UserSettingsでユーザ判定する方法

    本題です。今回は日報アプリを題材に説明します。日報なので、自分以外の人が作成した日報は表示できないように制御が必要です。

    通常はログインしたユーザのメールアドレスで判定ができます。

    [作成者].[メールアドレス]=USERMAIL()

    以下は、メールアドレスを使わない場合の代替手段としての方法となります。

    まず、ユーザマスタに「ID」「パスワード」の項目を用意します。極論はパスワードだけでも良いのですが、簡易とは言え認証ですので、IDとパスワード お組合せでチェックします。

    次に、UserSettingsでIDとパスワードを追加します。

    • ID
    • Password

    上記の設定を行うことで、SettingsでIDとパスワードが入力できるようになります。

    例えば、自分が作成した日報だけが表示されるようにします。

    そのために、データのスライスを追加します。以下のようにUserSettingsで設定したIDとパスワードに一致する

    • Slice Name: ログインユーザ日報
    • Source Table: 日報
    • Row filter condition:
    and([_THISROW].[作成者].[従業員ID]=USERSETTINGS("ID"),[_THISROW].[作成者].[パスワード]=USERSETTINGS("Password"))

    これにより、UserSettingsに指定が無いときは日報が表示されませんが、

    UserSettingsにIDとパスワードを入れると

    自分が作成した日報が表示されるようになります。

    最後に注意点

    繰り返しとなりますが、上記でのログインユーザの判定はAppSheetでは推奨されていません。あくまでユーザの認証はUSERMAIL()となります。

    ただ、契約アカウント数の節約の観点でニーズがあるのは事実ですので、今回取り上げさせて頂きました。

    上記はいつAppSheet側から利用制約がかかるリスクがないわけではありません。

    またPublisher Proなどの不特定多数のユーザが利用する場合は、AppSheetのセキュリティフィルターとは挙動が異なり、情報漏洩のリスクもある点は踏まえて、適切な利用を心がけたいものです。

    Comments

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です