Команда .removeEditors не удаляет все редакторы - PullRequest
0 голосов
/ 25 марта 2020

У меня возникла проблема, когда при удалении редакторов из документа удаляются не все редакторы. Я владелец таблицы. В приведенном ниже примере у меня есть электронная таблица, которая является рабочим билетом для наших работ. Я хочу ограничить, кто может редактировать / получать к нему доступ после закрытия задания для двух человек (example1@email.com и example2@email.com).

В настоящее время я (вероятно, неэффективно) удаляю все редакторы, а затем повторно - добавление примера 1 и 2 на некоторые листы. Это работает. На листах, содержащих ссылки на документ, которые я не хочу, чтобы люди редактировали, я удаляю все редакторы и не добавляю пользователей обратно, поэтому я могу редактировать лист как владелец документа. Это тоже работает.

Однако скрипт разрешает boss@email.com на некоторых листах с перерывами. Boss@email.com нет в списке тех людей, которые являются оригинальными редакторами, которых я удаляю. Когда я проверял это, я видел boss@email.com листов изменений, которые он показывает, от листов, которые должны быть только мной, до листов, которые должны быть мной, и example1 и example2.

Logger.log показывает Editors as example1@email.com, example2@email.com, employeeA@email.com, employeeB@email.com, employeeC@email.com, bossalt@email.com. Электронная почта моего босса фактически не отображается в журнале пользователей документа.

Как можно Я предотвращаю появление этого случайного электронного письма, и есть ли более эффективный способ сделать это? Я просматривал документацию по Google Apps Script и изучал StackOverflow, но не вижу, как возникла эта проблема.

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

var ss = SpreadsheetApp.getActive();
var formsheet = ss.getSheetByName("Form");
var bomsheet = ss.getSheetByName("BOM");
var scriptsheet = ss.getSheetByName("Script Work");
var lookupsheet = ss.getSheetByName("Lookup");
var invtemp = ss.getSheetByName("Inv Temp");
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);

Logger.log("Users," + (ss.getEditors()))

formsheet.protect().removeEditors(ss.getEditors());
formsheet.protect().addEditors(["example1@gmail.com","example2@email.com"]);
bomsheet.protect().removeEditors(ss.getEditors());
bomsheet.protect().addEditors(["example1@gmail.com","example2@email.com"]);
scriptsheet.protect().removeEditors(ss.getEditors());
lookupsheet.protect().removeEditors(ss.getEditors());
invtemp.protect().removeEditors(ss.getEditors());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...