Защита паролем Google Apps Script - PullRequest
0 голосов
/ 03 марта 2019

поэтому я создал небольшой скрипт для моих листов Google.Поскольку листы Google не позволяют использовать защиту паролем на отдельных листах, мне было интересно, есть ли способ защитить мой сценарий паролем, чтобы его могли использовать только определенные люди.Вот мой код.

function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('Custom Menu')
      .addItem('Record', 'Record')
      .addItem('Cancelation', 'Cancel')
      .addToUi();
}

function Record() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Nightly Stats'),
    row = sheet.getLastRow()
    range = sheet.getRange("A3:G3");
  sheet.insertRowAfter(row);
    range.copyTo(sheet.getRange(row + 1, 1), {contentsOnly:true});
}

Буду очень признателен за любые предложения, которые вы можете предоставить.

1 Ответ

0 голосов
/ 04 марта 2019

Хорошо, так что я на самом деле разобрался, как сделать систему паролей с помощью подсказок.Вот что я сделал на тот случай, если кому-то понадобится это в будущем.

function Cancel() {
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var ui = SpreadsheetApp.getUi();

  // first prompt
  var presult = ui.prompt(
    "Please Enter the Password to Use this Feature.",
    ui.ButtonSet.OK_CANCEL);

  var password = "Test";
  var pbutton = presult.getSelectedButton();
  var ptext = presult.getResponseText();

  // User clicked "OK" on first prompt
  if (pbutton == ui.Button.CANCEL) {
    ui.alert('The Process Was Ended.');
    } else if (pbutton == ui.Button.CLOSE) {
      ui.alert('The Process Was Ended.');
    } else if (ptext != password) {
      Password();   
    } else {
      "Insert whatever action you would want them to do after the password works here"
    }
  }

function Password() {
  var SS = SpreadsheetApp.getActiveSpreadsheet();
  var ui = SpreadsheetApp.getUi();
  var response = ui.alert("The Password is Incorrect. Retry?",
      ui.ButtonSet.OK_CANCEL);

  if (response == ui.Button.CANCEL) {
    ui.alert("The Process Was Ended.");
  } else if (response == ui.Button.CLOSE) {
    ui.alert("The Process Was ended.");
  } else {
    Cancel();
  }
}

Я дал только фрагмент кода, извините, если он выглядит немного странно.Я просто не хотел давать весь код и заставлять вас искать все.Надеюсь, это поможет:)

...