Assegnare i permessi ad un folder SharePoint
Un esempio di come assegnare i permessi ad un folder SharePoint recuperato tramite la sua url:
C#
//url del folder
string url = "http://sharepoint.sgart.local/Shared%20Documents/Folder1";
//nome del gruppo
string groupName = "Sgart.it Owners";
//nome del permesso da assegnare
string permissionName = "Contribute";
using (SPSite site = new SPSite(url))
{
using (SPWeb web = site.OpenWeb())
{
// bool allowUnsafeUpdate = web.AllowUnsafeUpdates;
// web.AllowUnsafeUpdates = true;
// trovo il folder tramite la sua url
SPFolder fldr = web.GetFolder(url);
// ricavo l'item per potergli assegnare i permessi
SPItem item = fldr.Item;
if (item.HasUniqueRoleAssignments == false){
// spezzo l'ereditarietà senza copiare i permessi (false)
item.BreakRoleInheritance(false);
}
// trovo il gruppo nella site collection
SPGroup grp = web.SiteGroups[groupName];
// assegno i permessi
SPRoleAssignment ra = new SPRoleAssignment(grp);
SPRoleDefinition rd = web.RoleDefinitions[permissionName];
ra.RoleDefinitionBindings.Add(rd);
item.RoleAssignments.Add(ra);
// web.AllowUnsafeUpdates = allowUnsafeUpdate;
}
}