見出し画像

【Glide】Googleスプレッドシートはやっぱり必要!?複数の権限グループ

今回も役割(Role)について、理解を深めていきましょう。過去の記事において、「データソースを『Googleスプレッドシート』にする必要はない」という趣旨の話を展開しました。Glide Tableを使えば、事足りるのではないかと。

が、すべての場合で、Googleスプレッドシート不要というわけでないです。やはり、Glideの成り立ちは、Googleスプレッドシートの存在を前提にしていたのですから、使い方によってはGoogleスプレッドシートをデータソースにする必要があります。

そのGoogleスプレッドシートが必要な使い方の一つが、「権限グループを複数設定」です。問題は、Glide TableではArray Columnを作ることができないことにあります。

どういうことでしょうか?具体的に見ていきましょう。

RowOwner設定がセキュリティのカギ

権限(Role)を設定する最も大きな理由は、Row Owner設定を細かく制御するため、つまり、どんな権限グループに属する人が、その行を表示できるかをコントロールするためです。そう、権限設定は、高いセキュリティを求められるアプリには不可欠なのです(アプリ側のフィルタリング設定をセキュリティ目的で使ってはいけないのは、何度も強調してきたことでしたね)。

その権限グループは一つでよい、とは限りません。リストによって、表示・非表示の基準となるユーザー属性は違うでしょう。例えば、「管理職の人だけ表示」とか、「人事部の人だけ表示」などです。

これからお示しする次のリスト(Things)の例では、2つの権限グループに応じて表示を切り替えます。

Owner1とOwner2のカラムに、RowOwnerが設定されていますね。Owner1のとおり、管理者に属する方はすべての行を表示できます。また、Owner2のとおり、TeamAの方は上から4つの行は表示できます。管理者でもTeamAでのない方は?何も表示されません。ここまではOKですか?

権限設定は一つのカラムにしか行えない!?

では、ユーザプロフィール用のテーブルを見てみましょう。権限グループが2つあります。「権限1」と「権限2」です(3人のユーザーのうち、権限1と権限2の組み合わせが一致する人がいないことを確認してください)。

ユーザープロフィール画面に移動し、上記のテーブルと紐づけます。そして、下図のように、権限(Role)を設定するわけですが、一つのカラムしか指定できません。がーん。権限1又は権限2を選ばざるを得ない状況です。これは困ります。両方使うのですから。

Glide Tableではカラムをアレイ化できない

先ほどの、Glide Table「Users」をもう一度よく見てみましょう。

権限を設定するカラムの列見出しが「共通の文字列+半角数字の連番」となっています。これは偶然ではありません。Googleスプレッドシートでは、列見出しを「共通の文字列+半角数字の連番」とすると、アレイ化(複数のカラムを一つに束ねる)できるのです。

もしかしたら、Glide Tableでも「権限1」「権限2」のカラムをアレイ化できるのではないかと見込みました。そうすれば、役割設定でアレイ化したカラム一つを指定すればいいのですから。

が、しかし、機能しませんでした。このテクニックは、Glide Tableでは通用しないのですね…。

Googleスプレッドシートなら、アレイ化は簡単

かくなる上は、ユーザープロフィールに紐づくデータは、Googleスプレッドシートにしてしまいましょう。

さきほどのGlide Tableと全く同じ内容のテーブルをGoogleスプレッドシート上に作って取り込みます。

おお!ちゃんとアレイカラムができているじゃないですか~。

ということで、ほくほくしながら、ユーザープロフィール画面に移動します。紐づけるテーブルをGoogleスプレッドシートの方に変更した上で、権限設定をします。やりました、アレイカラムが表示されましたね!

さっそく、Thingsというリストの表示をログインユーザー別に表示させて、権限設定がうまくいっているか確認しましょう!

権限に応じてリスト表示が自由自在

Thingsのタブに移動して、View as Usersを切り替えて表示具合を確認しましょう。

まずは、坂田さんです。Owner1でしている「管理者」の方ですから、すべての行が表示されています。

続いて、加藤さんです。加藤さんは、「管理者」ではありませんが、Owner2でしている「TeamA」に属する方ですから、上から4つのアイテムが表示されました。イェイ。

最後に、田中さんです。田中さんは、管理者でもなければ、TeamAでもございません。リストには、一つもアイテムが表示されませんでした。完璧です!

はい、ということで、複数の権限グループを設定するなら、ユーザープロフィールに紐づけるテーブルをGoogleスプレッドシートにしておきましょう、というお話でした。

それぞれのデータソースの特性を知って、うまく使いこなしましょう!

では、ビーダゼーン!

※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。




この記事が気に入ったらサポートをしてみませんか?