如何使用 MS Graph Api 获取文件夹(或文件)的当前用户权限角色?
我尝试:https://graph.microsoft.com/[v1.0 或 beta]/drives/[driveId]/items/[itemId]/permissions
但是除了所有者之外的所有人的角色数组都是空的......
如果它可以在文件夹中读取或写入,我想向用户显示一个特定的图标。
谢谢
--编辑1--
用户没有对该文件夹的直接权限,但他在具有读取角色的安全组中。
用户可以读取(打开)该文件夹中的任何信息,我只需要知道他是否可以在文件夹中读写(或不)。
当我尝试在没有良好权限的情况下写入时,我收到了 403 错误,我想知道“之前”用户无法在该文件夹上写入的错误..
--编辑2--
我尝试了文档所说的所有内容:https ://docs.microsoft.com/en-us/graph/api/permission-get?view=graph-rest-1.0&tabs=http
GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id} => 角色为空
GET /groups/{group-id}/drive/items/{item-id}/permissions/{perm-id} => 安全组没有任何驱动器
GET /me/drive/items/{item-id}/permissions/{perm-id} => 项目(文件夹)不在用户驱动器中
GET /sites/{site-id}/drive/items/{item-id}/permissions/{perm-id} => 这不是一个共享点站点
GET /users/{user-id}/drive/items/{item-id}/permissions/{perm-id} => 角色为空
我不明白的是,我可以毫无问题地读取、列出、添加和删除文件(如果我有写角色),但我看不到角色列表。
-- 编辑 3 --
如果你想重现 pb 傻瓜这个:
在 Azure Active Directory (AAD) 中创建一个用户,向其中添加一个名为“User1”的 Microsoft Office 365 许可证(在我的业务案例中)
在其中创建一个名为“共享”的 Onedrive for Business 文件夹
在 AAD 中创建一个安全组(让它命名为“Readers”)
与“读者”组共享上一个文件夹并将其设为只读(在我的情况下,我使用 onedrive 在线站点来执行此操作)
在 AAD 中创建名为“User2”的其他用户(有或没有许可证)
将其添加到“读者”组
现在,转到Graph Explorer并在输入文本框中输入此 url:
https://graph.microsoft.com/v1.0/drives/[User1的driveId]/items/[“共享”文件夹的itemId]/Permissions
你应该得到这个结果:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('...')/items('...')/permissions",
"value": [
{
"id": "...",
"roles": [],
"grantedTo": {
"user": {
"displayName": "Readers"
}
}
},
{
"id": "...",
"roles": [
"owner"
],
"grantedTo": {
"user": {
"email": "user1@mydomain.com",
"id": "...",
"displayName": "User1"
}
}
}
]
}
你可以看到,第一个角色数组是空的,但所有者角色数组不是..