How to clear the security role in Sitecore?

I am trying to remove a specific role from an element. Now I have 3 roles assigned. Everything, sitecore \ author, sitecore \ developer. How to remove "Everyone" and "sitecore \ author". So far I have tried this, but it does not work.

public static void ClearSecurityRoles(this Item item) { var accessrules = item.Security.GetAccessRules(); var role = Sitecore.Security.Accounts.Role.FromName("Everyone"); accessrules.Helper.RemoveExactMatches(role,AccessRight.Any,PropagationType.Any); item.SaveSecurityAccessRules(accessrules); } public static void SaveSecurityAccessRules(this Item item, AccessRuleCollection accessRules) { item.Editing.BeginEdit(); item.Security.SetAccessRules(accessRules); item.Editing.EndEdit(); } 

When I use accessrules.clear() , it removes all roles, but I want to remove only two. How to do it?

+5
source share
1 answer

You can do something like:

 Role role = Role.FromName("Everyone"); AccessRuleCollection accessRules = item.Security.GetAccessRules(); foreach (var accessRight in _accessRights) { AccessRight right = AccessRight.FromName(accessRight.Value); accessRules.Helper.RemoveExactMatches(role, right, PropagationType.Any); } item.Security.SetAccessRules(accessRules); 
+1
source

All Articles