我在谷歌硬盘里有一些文件和文件夹。我想用应用程序脚本设置访问权限。
我在sheetDatabase中放入了访问设置,单元格“K3”带有数据验证选项:“ARRANED”和“UNREGULED”。我的组织的域名是guru.smk.belajar.id(
我希望以后能改
),我把它放在“K4”单元格中。
为了设置文件/文件夹访问权限,我创建了应用程序脚本,但我无法设置有域地址限制的用户访问权限。
可以设置具有域(@sampledomain.com)地址限制的用户访问(不仅仅是用户(
[email protected]
) ?
function updatePermissions() {
var domainSetting = sheetDatabase.getRange('K3').getValue();
var domain = sheetDatabase.getRange('K4').getValue(); // As a sample, my domain was @guru.smk.belajar.id
Logger.log("Domain "+domain)
// Set Folder Share Access
var folderAplikasiPklID = sheetSetting.getRange(6, 3).getValue(); // Folder ID
var folder = DriveApp.getFolderById(folderAplikasiPklID);
// Set Spreadsheet Share Access
var spreadsheetID = sheetSetting.getRange(7, 3).getValue(); // Spreadsheet ID
var ssJurnalPKL = DriveApp.getFileById(spreadsheetID);
if (domainSetting === 'ARRANGED') {
// Set folder to view only by domain users
folder.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.VIEW);
folder.addViewers(domain);
// Set file to edit only by users in the specified domain
ssJurnalPKL.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.VIEW); // Restrict to private first
var viewers = ssJurnalPKL.getViewers();
for (var i = 0; i < viewers.length; i++) {
ssJurnalPKL.removeViewer(viewers[i]);
}
var editors = ssJurnalPKL.getEditors();
for (var i = 0; i < editors.length; i++) {
ssJurnalPKL.removeEditor(editors[i]);
}
ssJurnalPKL.addEditors(domain); // Give Editor Access to User in domain
} else if (domainSetting === 'UNREGULATED') {
// Set file to edit by anyone with the link
ssJurnalPKL.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.EDIT);
}
Logger.log('Permissions updated successfully.');
};