namespace InfiniteScale
{ public class STest : SPItemEventReceiver
{ public override void ItemAdded(SPItemEventProperties properties)
{
// est ce utile de laisser se lancer le itemadded de base ??
//base.ItemAdded(properties);
SPSecurity.RunWithElevatedPrivileges(delegate() {
// Est ce aussi simple pour prendre la place de l'administrateur ? c'est kool mici
try { using (SPSite TargetSite = new SPSite("http://portable-pcr/"))
{ using (SPWeb TargetWeb = TargetSite.OpenWeb())
{ SPRoleAssignment NewAssignment = null;
SPListItem Item = properties.ListItem;
Item.BreakRoleInheritance(false);
//Mon tableau possede une colonne "NivoDeConfi" a trois choix :"Niveau n°1",...
if (Item["NivoDeConfi"].ToString() == "Niveau n°2")
{ SPPrincipal Group = TargetWeb.SiteGroups["Invité"];
NewAssignment = new SPRoleAssignment(Group);
NewAssignment.RoleDefinitionBindings.Add(TargetWeb.RoleDefinitions["Hidden"]);
//Je souhaiterai rendre mon fichier que je rajoute invisible pour certains groupes
Item.RoleAssignments.Add(NewAssignment);
item.SystemUpdate();
//ou Item.Update(); ? ><
} } } } catch (Exception Ex)
{properties.Cancel = true;
properties.ErrorMessage = "Erreur dans l'Event ItemAdding : " + Ex.Message; } } ) } }
}
Partager