3

has anyone found a way to restrict copy/download/print access for a spreadsheet using google apps script? Background info: I created a script which restricts share rights for editors using setShareableByEditors(false). The only problem is that editors can still easily make a copy of the spreadsheet and then share it widely. I know that there's an option to manually restrict this setting in Google Sheets, but this solution is not scalable as I'm trying to manage share settings for a high number of spreadsheets. Any advice would be greatly appreciated. Thank you!

2 Answers 2

4

You can do this by enabling and using the Advanced Drive Service. You would set the file's restricted label to true. Here's an example:

function restrictFile() {

  var id = '10iM3V2q7FQWBAxy93eN9jvbp_SFco-KLPibeG9XRr71';

  // get the file with the Advanced Drive API (REST V2)
  var file = Drive.Files.get(id);
  Logger.log('File "%s", restricted label was: %s', file.title, file.labels.restricted);

  // set the restricted label
  file.labels.restricted = true;

  //update the file
  Drive.Files.update(file, id);

  // check the updated file
  var updatedFile = Drive.Files.get(id);
  Logger.log('File "%s", restricted label is: %s', updatedFile.title, updatedFile.labels.restricted);

}

You can confirm it also in the UI under File > Share... > Advanced: enter image description here

Sign up to request clarification or add additional context in comments.

Comments

1

It is only possible to restrict commenters and viewers from copy/download/print. It is not possible to restrict editors in the same way unfortunately.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.