Sometimes we may require to delete unique permissions and reset broken inheritance (recover inheritance) for a particular site, or list library, or list item. In this post, I am going to write C# code to reset stopped role inheritance using CSOM (Client Object Model).
Reset Role Inheritance of a Site
The following C# code reset the broken inheritance of a sharepoint site.
private static void ResetRoleInheritanceInSite()
{
string sitrUrl = "https://sptenant.sharepoint.com/sites/contosobeta/sbeta";
using (var ctx = new ClientContext(sitrUrl))
{
var site = ctx.Web;
//Stop Inheritance from parent site
site.ResetRoleInheritance();
ctx.Load(site);
ctx.ExecuteQuery();
}
}
Reset Broken Inheritance of a List Library
The following C# code reset the broken inheritance of a sharepoint list library.
private static void ResetRoleInheritanceInList()
{
string sitrUrl = "https://sptenant.sharepoint.com/sites/contosobeta";
using (var ctx = new ClientContext(sitrUrl))
{
var web = ctx.Web;
ctx.Load(ctx.Web, a => a.Lists);
ctx.ExecuteQuery();
List list = ctx.Web.Lists.GetByTitle("TestDocLibrary");
//Stop Inheritance from parent
list.ResetRoleInheritance();
list.Update();
ctx.ExecuteQuery();
}
}
Reset Unique Permissions for a List Item
The following C# code reset the broken inheritance for a sharepoint list document item.
private static void ResetRoleInheritanceInListItem()
{
string sitrUrl = "https://sptenant.sharepoint.com/sites/contosobeta";
using (var ctx = new ClientContext(sitrUrl))
{
var web = ctx.Web;
ctx.Load(ctx.Web, a => a.Lists);
ctx.ExecuteQuery();
List list = ctx.Web.Lists.GetByTitle("TestDocLibrary");
string document = "TestFile.txt";
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "" + document + "";
var items = list.GetItems(camlQuery);
ctx.Load(items);
ctx.ExecuteQuery();
foreach (var item in items)
{
item.ResetRoleInheritance();
ctx.ExecuteQuery();
}
}
}
Advertisement