问题描述
如何使用MS Graph Api获取文件夹(或文件)的当前用户权限角色?
我尝试:https://graph.microsoft.com/[v1.0 or beta]/drives/[driveId]/items/[itemId]/permissions
但是角色数组对于除所有者之外的所有角色都为空...
我想向用户显示一个特定的图标,如果它可以在文件夹中读写。
Thx
-编辑1-
该用户没有对该文件夹的直接权限,但他在一个具有读取角色的安全组中。
用户可以读取(打开)该文件夹中的任何信息,我只需要知道他是否可以读取和写入(或不可以)该文件夹中的信息即可。
当我尝试在未经允许的情况下写信时,出现403错误,我想“在此之前”知道该用户无法在该文件夹上书写的错误。
-编辑2 ---
我尝试所有医生说的话:https://docs.microsoft.com/en-us/graph/api/permission-get?view=graph-rest-1.0&tabs=http
获取/ drives / {drive-id} / items / {item-id} / permissions / {perm-id} =>角色为空
获取/ groups / {group-id} / drive / items / {item-id} / permissions / {perm-id} =>安全组没有任何驱动器
获取/ me / drive / items / {item-id} / permissions / {perm-id} =>项目(文件夹)不在用户驱动器中
获取/ sites / {site-id} / drive / items / {item-id} / permissions / {perm-id} =>它不是共享站点
获取/ users / {user-id} / drive / items / {item-id} / permissions / {perm-id} =>角色为空
我不明白的是,我可以毫无问题地读取,列出,添加和删除文件(如果我具有写入角色),但是看不到角色列表。
-编辑3-
如果要重现pb foolow,请执行以下操作:
-
在Azure Active Directory(AAD)中创建一个用户,向其中添加一个名为“ User1”的Microsoft Office 365许可证(在我的情况下为业务)
-
在OneDrive for Business中创建一个名为“共享”的文件夹
-
在AAD中创建安全组的名称(将其命名为“读者”)
-
与“读者”组共享以前的文件夹,并将其设置为只读(在我的情况下,我使用onedrive在线网站来做到这一点)
-
在AAD中创建一个名为“ User2”的其他用户(具有或不具有许可证)
-
将其添加到“读者”组
现在,转到Graph Explorer,然后在输入文本框中输入以下网址:
用户1的https://graph.microsoft.com/v1.0/drives/[driveId] /项/ [“共享”文件夹的项ID] /权限
您应该得到以下结果:
{
"@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"
}
}
}
]
}
您已经看到,第一个角色数组为空,但所有者角色数组不是。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)