RemoveEditor на общем диске

#google-apps-script

#google-apps-script

Вопрос:

Я пытаюсь удалить редакторы на общем диске, на моем диске код работает нормально, но когда я запускаю его на «общем диске», появляется это сообщение,

здесь, Другое и файл в коде

кто-нибудь может подсказать мне другой метод, который я могу использовать?

 
function cambiarPermisosEdicion (a) {
  var fol = DriveApp.getFolderById(a);
  var files = fol.getFiles();

  while (files.hasNext()){
    var file = files.next();
    var peopleToEdit = file.getEditors();
    for (var i=0 ; i < peopleToEdit.length; i  ){
      
          file.removeEditor(peopleToEdit[i]);
          file.addViewer(peopleToEdit[i]);
    }
  }
  }
 

Привет, я уже являюсь контент-менеджером общего диска, поэтому я не понимаю, почему отображается это сообщение об ошибке.

Менеджер контента

Спасибо!!

Ответ №1:

Исключение: невозможно использовать эту операцию для элемента общего диска

в большинстве случаев означает, что вы являетесь Contributor Commenter пользователем или Viewer пользователем общего диска.

Чтобы изменить права доступа к файлам, вам нужно быть Content manager Manager редактором .

Смотрите здесь для получения дополнительной информации.

введите описание изображения здесь

Обновить

Если вы являетесь контент-менеджером общего диска, у вас не должно возникнуть проблем с разрешениями. Однако в качестве обходного пути у вас также есть возможность использовать службу Advanced Drive вместо DriveApp .

Для этого:

 function cambiarPermisosEdicion (a) {
 var fol = DriveApp.getFolderById(a);
 var files = fol.getFiles();
 
 while (files.hasNext()){
   var file = files.next();
   var fileId = file.getId();
   var permissions = Drive.Permissions.list(fileId).items[0];
   permissions.forEach(function(permission){ 
     Drive.Permissions.remove(fileId, permission.id);
   })
   var peopleToEdit = file.getEditors();
   for (var i=0 ; i < peopleToEdit.length; i  ){
     var resource = {
       "role": "reader",
       "type": "user",
       "value": peopleToEdit[i]
     }
     Drive.Permissions.insert(resource, fileId);
   }
 }
}
 

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

1. Привет, я уже являюсь менеджером содержимого папки, поэтому я не понимаю, почему отображается это сообщение об ошибке.

2. Вам нужен менеджер содержимого ОБЩЕГО диска.

3. Извините, спасибо за вашу помощь ;). Мой английский не очень хорош, но я хотел сказать, что я являюсь контент-менеджером «общего диска», а менеджер общего диска запускает код и показывает ту же ошибку.

4. Взгляните на альтернативное решение в моем отредактированном ответе.