获取TeamDrive文件夹的权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取TeamDrive文件夹的权限相关的知识,希望对你有一定的参考价值。
我正在尝试获取团队驱动器根文件夹而不是团队驱动器文件的访问权限(编辑,评论,查看...)的用户列表。
第一次尝试 :
var folders = Drive.Teamdrives.list({
pageSize:100,
pageToken:folderPT
});
for (var i = 0; i < folders.items.length; i++)
{
var folder = folders.items[i];
var teamDrive = Drive.Teamdrives.get(folder.id);
var test = DriveApp.getFolderById(folder.id);
Logger.log(test.getEditors());
}
我必须使用哪些方法?是否有可能做到这一点 ?
我的代码的响应只是空结果:
[18-09-05 14:18:36:282 CEST] []
[18-09-05 14:18:36:771 CEST] []
[18-09-05 14:18:37:143 CEST] []
[18-09-05 14:18:37:625 CEST] []
[18-09-05 14:18:38:306 CEST] []
[18-09-05 14:18:38:690 CEST] []
编辑:事实上上面的代码工作,我的测试文件夹是空的。但下面的答案更好。
答案
您可以使用文件来确定在文件本身上设置的权限或从团队驱动器继承的权限。
您可以通过Permissions
中的Drive
命名空间来完成此操作。
function getFilePermissions(fileId) {
var permissions = Drive.Permissions.list(fileId, {supportsTeamDrives:true,
corpora: 'teamDrive',
includeTeamDriveItems: true})
.items
.reduce(function(all, i){
var role = i.teamDrivePermissionDetails.map(function(permission){
// commenters are flagged as having an additional role as readers
var activeRole = (i.additionalRoles) ? i.additionalRoles[0] : permission.role;
return {emailAddress: i.emailAddress,
teamDrivePermissionType: permission.teamDrivePermissionType,
role: activeRole};
});
return all.concat(role);
}, []);
return permissions;
}
此函数减少了Permissions.list
调用返回的信息量,以返回一个对象数组,从中可以确定一大堆信息。单个用户可以是Team Drive的读者,但是文件本身的Writer(编辑器),此函数返回两个权限。
EG
[
{
"emailAddress": "geoff@example.com",
"teamDrivePermissionType": "member", <-- a Team Drive permission
"role": "organizer" <-- an Team Drive domain member
},
{
"emailAddress": "jonathon@example.com",
"teamDrivePermissionType": "member",
"role": "writer" <-- a non-Domain member
},
{
"emailAddress": "jonathon@example.com",
"teamDrivePermissionType": "file",
"role": "writer" <-- editor set on the file share
},
{
"emailAddress": "svea@example.com",
"teamDrivePermissionType": "file",
"role": "reader" <-- viewing rights set at file level
},
{
"emailAddress": "info@example.com",
"teamDrivePermissionType": "member",
"role": "organizer"
},
{
"emailAddress": "rebekkah@example.com",
"teamDrivePermissionType": "file",
"role": "commenter" <-- this is a reader with comment rights
}
]
通过member
或file
(非会员)或角色:读者,作家等过滤它。
有关权限对象模式的更多信息,请访问:Permissions Resource
以上是关于获取TeamDrive文件夹的权限的主要内容,如果未能解决你的问题,请参考以下文章
TeamDrive(电脑文件同步工具)V4.0.8.1240 官方最新版
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段