At a site collection level, I can look at the permission levels for the collection at /sites/siteCollectionname/_layouts/15/role.aspx, and then I can navigate to a particular permission level and see the specific permissions that are granted to that level at /sites/siteCollectionname/_layouts/15/editrole.aspx?role=Permission%20Name

I want retrieve this information programmatically using CSOM. I can retrieve a site's RoleDefinitionCollection and enumerate the permission levels themselves, including their name, description and 'role type kind'. I now want to, for each RoleDefinition, enumerate the base permissions (PermissionKind?) that are set on it. For example, for a permission level represented in the below screenshot, I want to output "Add Items, Edit Items, Delete Items, View Items".

I am aware that permissions are implemented using masks and that this involves a high and low integer, but unsure how to fetch these and then transform them into human-readable permissions.

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.