您可以使用文件来确定在文件本身上设置的权限或从团队云端硬盘继承的权限。
您可以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(编辑器),此函数返回这两种权限。
例如
[
{
"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
(非成员)或按角色过滤:读者、作者等。
有关权限对象架构的更多信息,请在此处查看:权限资源