Un’importante innovazione che troviamo in SharePoint 2007, consiste nella possibilità di avere differenti autorizzazioni su ogni singola cartella di una document library (nella versione 2003 le autorizzazioni erano invece comuni su tutta la document library).
Se ad esempio vogliamo rimuovere i diritti di accesso a tutti i gruppi ad eccezione di uno, sarà sufficiente interrompere la RoleInheritance sulla cartella interessata e rimuovere i vari gruppi dall’item.
SPSite site = new SPSite("http://myServer:1001/sites/mySite/Documents");
SPWeb web = site.OpenWeb();
SPListItem item = web.GetFolder("http://myServer:1001/sites/mySite/Documents/cartella01").Item;
// Verifica la permission inheritance, e se necessario la interrompe
if (!item.HasUniqueRoleAssignments)
{
item.BreakRoleInheritance(true);
}
// Per ogni gruppo nel sito toglie i permessi ad eccezione del gruppo interessato
foreach (SPGroup group in web.Groups)
{
if (group.Name != "nome gruppo da non rimuovere")
{
item.RoleAssignments.Remove(group);
}
}
item.Update();
|
Technorati Tags:
SharePoint,
.NET
posted @ lunedì 24 settembre 2007 05:48