Microsoft Graph Api,Onedrive或Sharepoint:如何使当前用户具有读取或担任角色

问题描述

如何使用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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...