Hi friends,
public void SetItemLevelPermission(SPItemEventProperties properties)
{
SPWeb web = null;
try
{
SPUser currentUser = null;
web = properties.OpenWeb();
currentUser = web.CurrentUser;
SPSecurity.RunWithElevatedPrivileges(delegate
{
using (SPSite elevatedSite = new SPSite(properties.SiteId))
{
using (SPWeb elevatedWeb = elevatedSite.OpenWeb(properties.ListItem.Web.ID))
{
SPList elevatedList = elevatedWeb.Lists[properties.ListId];
SPListItem elevatedListItem = elevatedList.Items.GetItemById(properties.ListItem.ID);
elevatedListItem.Web.AllowUnsafeUpdates = true;
// Break inheritance and clear permissions on list item
if (!properties.ListItem.HasUniqueRoleAssignments)
{
elevatedListItem.BreakRoleInheritance(false);
}
// Add Add and Edit permissions for current user
SPUser Usr = GetUser(web);
this.SetPermissionsForUser(elevatedWeb, elevatedListItem, Usr);
this.EventFiringEnabled = false;
elevatedListItem.SystemUpdate();
this.EventFiringEnabled = true;
elevatedListItem.Web.AllowUnsafeUpdates = false;
}
}
});
}
catch (Exception Ex)
{
throw;
}
}
public SPUser GetUser(SPWeb web)
{
SPUser userName = null;
foreach (SPUser usr in web.SiteUsers)
{
if (usr.Name == “A1”)
{
userName = usr;
return userName;
}
}
return null;
}
private void SetPermissionsForUser(SPWeb elevatedWeb, SPListItem elevatedListItem, SPUser Usr)
{
SPRoleDefinition roleDefinition = elevatedWeb.RoleDefinitions[“Only Edit Custom”];
SPRoleAssignment roleAssignment = new SPRoleAssignment(Usr.LoginName, Usr.Email, Usr.Name, string.Empty);
roleAssignment.RoleDefinitionBindings.Add(roleDefinition);
elevatedListItem.RoleAssignments.Add(roleAssignment);
}