1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Appsheet】Googleグループのデータを使用し表示制限を行う

Last updated at Posted at 2023-10-31

はじめに

AppsheetのEnterpriseプランであればGoogleグループごとにアプリの共有を行うことができるようなのですが、アプリの中でGoogleグループの権限を参照し表示制限をしたかったので、GoogleグループのデータをGASで取得しアプリケーションの判定として組み込みました。

グループ情報の取得

まずGASでアプリ内の管理者データを表示させたいグループのデータを取得します。

//スプレッドシートにメニューを追加
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu("実行");
  menu.addItem("グループ・権限取得", "getGroupMembersToSheet");
  menu.addToUi();
}
function getGroupMembersToSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var groupEmail = 'データ取得したいグループのメールアドレス';
  //グループ情報取得
  var group = GroupsApp.getGroupByEmail(groupEmail);

  //スプレッドシート書き込み
  if (group) {
    var members = group.getUsers();
    
    if (members.length > 0) {
      //一行目にカラムを追加
      sheet.getRange(1, 1).setValue("メールアドレス");
      for (var i = 0; i < members.length; i++) {
        sheet.getRange(i + 2, 1).setValue(members[i].getEmail());
      }
    } else {
      sheet.getRange(1, 1).setValue('このグループにはメンバーがいません。');
    }
  } else {
    sheet.getRange(1, 1).setValue('指定したメールアドレスのグループが見つかりません。');
  }
}

onOpen()を実行後
スプレッドシート実行タブに「グループ・権限取得」が生成されるので実行します。
image.png

GASのトリガーを使用し定期実行させることも可能です。
今回はgetGroupMembersToSheet関数を毎日午前0時から1時で実行させるよう設定しております。

image.png

グループデータ取り込み

作成したスプレッドシートのデータをAppsheetで取り込みます。
更新や削除を行うことはないのでRead-Onlyを選択します。
image.png

判定作成

観覧を制限したいViewsの中の「ShowIf」でアプリ使用者のメールアドレスがグループに無い場合表示させないように記載します。
今回は「在庫一覧(管理者)」Viewを表示させないようにします。

image.png

作成した管理者グループデータの中にアプリユーザーが含まれている場合表示させるようにIN関数を使用し設定します。

IN(USEREMAIL(),SELECT(管理者グループデータ[メールアドレス],true))

image.png

動作確認

データソースに無いメールアドレスを指定すると
「在庫一覧(管理者)」Viewが表示されていないことが確認できました。
image.png

まとめ

アプリの表示権限をテーブルとして持つと管理に別途運用コストが発生してしまうのでGoogleグループのデータでアプリ内の挙動を変更したい場合の参考になれば幸いです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?