I created a role called "Sen_RPA" which shall enable view, creation and modification and deletion of classifications.
The role is created via code and permissions have been granted. Everything is also visible in the backend as I developed it.
However, the simple List "Tags" under Classifications, does not list this custom role in the permissions. Whoever, "All Classifications"'s permissions does list the role. Is there a reason the inheritance does not occur in Tags? Is there even an inheritance from "All Classifications?
When I manually create a role and add these permissions, "Tags" will automatically get the new role.
My code is the following:
private void CreateTagsPermissions(string role) { TaxonomyManager taxonomyMgr = TaxonomyManager.GetManager(); string permSet = SecurityConstants.Sets.Taxonomies.SetName; Permission pagePerm = taxonomyMgr.CreatePermission( permSet, taxonomyMgr.GetSecurityRoot(false).Id, GetRole(role).Id); pagePerm.GrantActions( false, SecurityConstants.Sets.Taxonomies.Create, SecurityConstants.Sets.Taxonomies.Delete, SecurityConstants.Sets.Taxonomies.Modify, SecurityConstants.Sets.Taxonomies.View ); taxonomyMgr.GetSecurityRoot(false).Permissions.Add(pagePerm); taxonomyMgr.SaveChanges(); }
public void CreateRole(string roleName) { RoleManager roleManager = RoleManager.GetManager(SecurityManager.ApplicationRolesProviderName); roleManager.Provider.SuppressSecurityChecks = true; if (roleManager.GetRoles().FirstOrDefault(r => r.Name == roleName) == null) { roleManager.CreateRole(roleName); roleManager.SaveChanges(); roleManager.Provider.SuppressSecurityChecks = false; } else { // Handle appropriately when the role already exists } }