获取预定义角色(例如,读者,管理员)的角色定义ID的最佳方法是什么?
我正在尝试将文件夹配置为使成员仅具有读取权限。为此,我要删除成员的现有角色分配,并向其添加读者角色。 SharePoint REST API要求我提供角色定义ID,但找不到可靠的方法。
似乎可以通过名称_api/web/roledefinitions/getbyname('Read')
来获取它,但是我担心如何处理非英语语言环境。我希望可以按类型_api/web/roledefinitions/getbytypekind(2)
进行搜索,但是无法正常工作。它给我一个错误Cannot find resource for the request getbytypekind.
还可以删除默认角色定义吗?
答案 0 :(得分:1)
似乎我可以用名字来得到它 _api / web / roledefinitions / getbyname('Read'),但我担心如何处理非英语语言环境的情况
是正确的,SP.RoleDefinition.name
property可能因地区而异,因此在这方面,通过role type检索角色定义绝对更可靠,例如,可以在此处使用SP.RoleDefinitionCollection.getByType
method:
/_api/web/roledefinitions/getByType(<roletypeid>)
其中roletypeid
对应于SP.RoleType
enumeration
答案 1 :(得分:0)
您可以通过
获取角色定义列表https://xxxx.sharepoint.com/_api/Web/RoleDefinitions
然后您可以通过id(例如read)来获得特定角色,因此我们不需要关心语言环境问题:
https://xxxx.sharepoint.com/_api/Web/RoleDefinitions(1073741826)
角色列表和ID:
FullControl(Web/RoleDefinitions(1073741829))
Design(Web/RoleDefinitions(1073741828))
Edit(Web/RoleDefinitions(1073741830))
Contribute(Web/RoleDefinitions(1073741827))
Read(Web/RoleDefinitions(1073741826))
Limited Access(Web/RoleDefinitions(1073741825))
System.LimitedView(Web/RoleDefinitions(1073741926))
System.LimitedEdit(Web/RoleDefinitions(1073741927))
Create new subsites(Web/RoleDefinitions(1073741924))
View Only(Web/RoleDefinitions(1073741925))
我们可以使用默认角色或自定义我们自己的角色,因此我认为Microsoft不需要提供用于删除内置角色的API。
虽然我们也可以使用getbytype方法,但是角色类型值的列表不是非常用户友好。(请参阅下面的链接中的更多信息)
https://msdn.microsoft.com/en-us/library/office/dn531432.aspx#bk_RoleDefinitionCollectionGetById https://msdn.microsoft.com/en-us/library/office/dn531432.aspx#bk_RoleDefinitionCollectionGetByType