Назначьте любой вид защиты пользовательскому меню

#google-apps-script #google-sheets

Вопрос:

Если это невозможно , могу ли я сделать какой-либо трюк, чтобы открыть msgbox, а затем завершить сценарий, если кто-нибудь попытается получить доступ к сценарию, вот мой код :

     function onOpen(){
    var ui = SpreadsheetApp.getUi();
    var menu = ui.createMenu('Private');
    menu.addItem('Clear Cols','clearAli');
    menu.addItem('Enter Number of days','noOfDays');
    menu.addItem('subject','myEmail')
    menu.addToUi();
    } 
 
    function clearAli(){
    var ss = SpreadsheetApp.getActive();
    ss.getRangeList(['G2:K108', 'M2:M108', 'O2:O108']).activate().clearContent();
    }
    function noOfDays(){
    var 
    days =  SpreadsheetApp.getUi().prompt('Please enter the number of days.').getResponseText();
    SpreadsheetApp.getActiveSpreadsheet().getRange('H2:H5').setValue(days);
    }
    function myEmail(){
    const 
subject = SpreadsheetApp.getUi().prompt('Enter your subject line').getResponseText();GmailApp.sendEmail('noelaramouny@gmail.com,alinemanoukian04@gmail.com',subject,'https://docs.google.com/spreadsheets/d/1Z92UC7RAqScObY2vpAKlzIvoY4yihxRtqw_2LEB2-8g/edit?usp=sharing');
}
 

Комментарии:

1. Можете ли вы предоставить более подробную информацию о вашей проблеме? Кому разрешен доступ к скрипту, а кому нет? Вы имеете в виду кого угодно, включая владельца файла? Является ли ваш файл общим для других пользователей? Пожалуйста, уточните

Ответ №1:

 const whitelist = ['mail1', 'mail2'];
const user = Session.getActiveUser().getEmail();
if (!whitelist.includes(user)) {
  Browser.msgBox('Not in whitelist');
  return;
}