LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2019年10月22日火曜日

GASで実行するユーザを個別に絞りたい


emailsで設定したユーザーだけが実行できるようにしたい


HtmlServiceのスクリプトで書く場合

ウェブアプリの導入の設定が
User accessing the web app(このアプリケーションにアクセスしているユーザー)
全ユーザーがアクセスできる状態で
var emails で設定した
  'foo@gmail.com',
  'bar@gmail.com'
だけが実行できるようにしたい。


コード.gs
var emails = [
  'foo@gmail.com',
  'bar@gmail.com'
  ];

var email = Session.getActiveUser().getEmail();
var checkEmail = emails.some(judge);

function judge(value) {
  return value === email;
}


function doGet(e) {
  if(checkEmail === true) {
    var html = '<label>hello</label>';
  } else {
    var html = '<div>このアプリを開く権限がありません。</div>';
  }
  return HtmlService.createHtmlOutput(html);
}








スプレッドシート内のスクリプトで書く場合
(ちょっと書き方を変えた)

シートを複数人で共有している状態で
  'foo@gmail.com',
  'bar@gmail.com'
だけがスクリプトを実行できるようにしたい。


コード.gs
var email = Session.getActiveUser().getEmail();

function myFunction() {
  var checkEmail = judgeEmail(email);
  var message;
  if(checkEmail === true) {
    message = 'hello';
  } else {
    message = 'このアプリを実行する権限がありません。';
  }
  Browser.msgBox(message)
}

var emails = [
  'foo@gmail.com',
  'bar@gmail.com'
  ];

function judgeEmail() {
  return emails.some(function(value) {
    return value === email;
  });
}




最新の投稿

現在日時から四半期の開始日と終了日を知りたい

今の日時を取得して、現在の四半期の開始日と終了日を知りたくて書いたコードです。 コード.gs function myFunction() { const month = new Date().getMonth() + 1;// monthは0始まりなので+1 ...