Il blog di Giuseppe Marchi - SharePoint MVP
NAVIGATION - SEARCH

Un event handler per cambiare i permessi di un item

Per necessitudini varie, ho sviluppato questo semplice event handler che non fa altro che settare i permessi "Full Control" all'utente che ha creato un nuovo item nella lista in cui l'handler viene registrato.

using System;

using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

namespace Peppe.Sharepoint.Handlers
{
public class SetFullControlToAuthor : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWeb web = properties.OpenWeb();
using(web)
{
SPListItem item = properties.ListItem;

SPRoleDefinition fullControl = web.RoleDefinitions["Full Control"];
SPUser author = web.Users.GetByID(properties.CurrentUserId);
SPRoleAssignment assignment = new SPRoleAssignment(author);
assignment.RoleDefinitionBindings.Add(fullControl);
item.BreakRoleInheritance(false);
item.RoleAssignments.Add(assignment);
item.Update();
}
});
}
}
}

E' molto semplice. Utilizza le nuove classi di WSS 3.0, SPRoleDefinition e SPRoleAssignment, per assegnare permessi ad utenti su singoli oggetti di sharepoint. Volendo può essere esteso per prelevare informazioni da un campo di tipo User o UserMulti, con la possibilità di inserire anche gruppi del sito Sharepoint e non solamente utenti.
blog comments powered by Disqus