.getEditors () возвращает 'DriveUser, DriveUser' - PullRequest
0 голосов
/ 05 марта 2020

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

Однако .getEditors () всегда возвращает DriveUser, DriveUser, поэтому все редакторы добавляются, даже если они уже существуют.

Спасибо за совет, если у вас есть решение для этого.

Вот мой код:

var dropboxID = "zzxxccvv112233";

var folderList = DriveApp.getFolderById(dropboxID).getFoldersByName(employee);

if (folderList.hasNext()) {
      var employeeFolder = folderList.next(); //folder already exists so just add new Editors, if any
      var currentEditors = employeeFolder.getEditors();
      Logger.log("currentEditors = " + currentEditors);

      var newEditors = emailTo + "," + emailCc;
          newEditors = newEditors.replace(/\s/g, '');
          newEditors = newEditors.split(',');

      var editorsToAdd = [];

      for (var i=0 ; i<newEditors.length ; i++) {  
          if (currentEditors.indexOf(newEditors[i]) < 0) {
              editorsToAdd.push(newEditors[i]);
        }  
      }
      employeeFolder.addEditors(editorsToAdd);
} else {

и Logger показывает это:

[20-03-05 21:23 : 46: 637 HKT] currentEditors = DriveUser, DriveUser

1 Ответ

3 голосов
/ 05 марта 2020

Вы должны сравнивать по адресу электронной почты с User.getEmail()

// Get all of the current editor emails in one array
var currentEditorEmails = currentEditors.map(function (editor) { return editor.getEmail() });

// Check if the new editor emails exist in the currentEditorEmails array
for (var i=0 ; i<newEditors.length ; i++) {  
  if (currentEditorEmails.indexOf(newEditors[i]) < 0) {
    editorsToAdd.push(newEditors[i]);
  }  
}

Если вы используете V8 , вы можете вместо этого использовать функцию стрелки.

const currentEditorEmails = currentEditors.map(editor => editor.getEmail());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...