Сценарий Google App говорит, что действие не разрешено - PullRequest
0 голосов
/ 27 ноября 2018

Я столкнулся с проблемой при попытке выяснить способ автоматизации совместного использования отдельных файлов с помощью сценария, который выполняется внутри электронной таблицы.По сути, я пытаюсь добавить редакторы в отдельные таблицы внутри папки.Эти редакторы не являются частью группы (только другие учетные записи GMail) и не должны иметь доступа на уровне папок для добавления / удаления файлов.

У меня есть следующий код:

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('File Access').addItem('Grant Access', 'addUser').addToUI();
}

function addUser() {
  var ui = SpreasheetApp.getUI();
  var response = ui.prompt('Grant Access', 'Enter the email address to grant access for:', ui.ButtonSet.OK_CANCEL);
  if (response.getSelectedButtion() != ui.Button.OK) {
    return;  // Ignore Cancel button
  }
  var emailAddress = response.getResponseText();
  var folder = DriveApp.getFolderById(folderID);
  var files = folder.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    file.addEditor(emailAddress);
    ui.alert('Granted access to: ' + file.getName());
  }
}

КогдаЯ тестирую его на своем собственном диске, где у меня есть электронная таблица, App Script, папка, которую может просматривать каждый, файлы в папке, на которую я хочу воздействовать, она отлично работает.Однако, если коллега, у которого есть доступ к редактированию электронной таблицы, в которой находится эта функция, и редактирование доступа к файлам, которые будут затронуты, попытается запустить его, он получит ошибку Action not allowed при выполнении, даже после предоставления авторизации.

Странная часть: если я позволю кому-либо редактировать папку, она работает безупречно.Тем не менее, невозможно вручную добавить моих коллег для прав доступа к этой папке, и, конечно, это не безопасно, если я позволю кому-либо редактировать эту папку.

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

Я бы предпочел решение, которое может использовать интерфейс меню внутри Google Sheets.Из того, что я прочитал, развертывание в качестве веб-приложения может обойти эту явную проблему с разрешениями, однако я бы хотел избежать этой возможности, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...