获取角色定义的可靠方法

时间:2018-08-06 20:32:53

标签: sharepoint sharepoint-online

获取预定义角色(例如,读者,管理员)的角色定义ID的最佳方法是什么?

我正在尝试将文件夹配置为使成员仅具有读取权限。为此,我要删除成员的现有角色分配,并向其添加读者角色。 SharePoint REST API要求我提供角色定义ID,但找不到可靠的方法。

似乎可以通过名称_api/web/roledefinitions/getbyname('Read')来获取它,但是我担心如何处理非英语语言环境。我希望可以按类型_api/web/roledefinitions/getbytypekind(2)进行搜索,但是无法正常工作。它给我一个错误Cannot find resource for the request getbytypekind.

还可以删除默认角色定义吗?

2 个答案:

答案 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

相关问题
最新问题