前言
近期项目上遇到了获取SharePoint list或document library item的权限,想到了是否可以通过rest api获取,如果为实现方式
实现
1、获取单个item对应的所有权限
https://weburl/_api/web/lists/getbytitle('list name或document library name')/items(item id)/roleassignments
--语法
GET <Site_URL>/_api/web/roleassignments?$expand=Member/users,RoleDefinitionBindings
结果为:如下图所示
2、通过PrincipalId获取权限信息,如:用户名、SharePoint用户组名等
--获取SharePoint用户组或用户的信息
https://weburl/_api/web/lists/getbytitle('list name')/items(item id)/roleassignments/GetByPrincipalId(PrincipalId)/Member
--获取SharePoint用户组或用户的显示名
https://weburl/_api/web/lists/getbytitle('list name')/items(item id)/roleassignments/GetByPrincipalId(PrincipalId)/Member/Title
--获取SharePoint用户组或用户的登录名
https://weburl/_api/web/lists/getbytitle('list name')/items(item id)/roleassignments/GetByPrincipalId(PrincipalId)/Member/LoginName
3、扩展
--Retrieve Role Assignments for a list:
/_api/web/lists/getbytitle('list title')/roleassignments?$expand=Member/users,RoleDefinitionBindings
--Retrieve Role Assignments for a listitem:
/_api/web/lists/getbytitle('list title')/items(id)/roleassignments?$expand=Member/users,RoleDefinitionBindings
--Check if site/list/listitem has a unique permission:
/_api/web/HasUniqueRoleAssignments
/_api/web/lists/getbytitle('list title')/HasUniqueRoleAssignments
/_api/web/lists/getbytitle('list title')/items(id)/HasUniqueRoleAssignments
--other
weburl+”/_api/Web/lists”
Displays all the lists present inside the Site
weburl+”/_api/web/lists?$filter=HasUniqueRoleAssignments”
Displays all the lists present inside the site which has uniquepermission
weburl+”/_api/Web/RoleAssignments?$expand=Member,RoleDefinitionBindings”
This displays all the users and groups with the permission level they have in the provided web.
weburl+”/_api/Web/lists/getbytitle(‘”+listtitle+”‘)/RoleAssignments?$expand=Member,RoleDefinitionBindings”
This displays all the users and groups with the permission level they have in the provided web
Fields we used- Title (Group or User Name), Name(Permission Name), Description( Permission description).