#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
.
Для этого:
- Обязательно включите
Advanced Drive Service
- Используйте методы ресурса разрешений
- Напишите свой запрос следующим образом:
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. Взгляните на альтернативное решение в моем отредактированном ответе.