Automate Permissions for a document library
SPSite
WebApp =newSPSite(http://dev);I nested the line above inside ofSPSecurity.RunWithElevatedPrivileges(delegate()...which caused a new error, nullReferenceException which highlighted SPSecurity.RunWithElevatedPrivileges(delegate().My code is fired off by theItemAdded event. Sample of my code below (please note that this does function when logged in as an administrator, but not as a regular user).
SPSecurity.RunWithElevatedPrivileges(delegate(){
SPSite WebApp =newSPSite("http://dev");SPWeb web = WebApp.OpenWeb();SPUser user = web.Users.GetByID(1073741823);string userEmail = @user.Email;string userName = @user.Name;string loginName = @user.LoginName;// SPUser user = web.Users.GetByID(1073741823); using (SPSite site =newSPSite(@"http://dev"))//using (SPSite site = new SPSite(this.Page.Request.Url.ToString())){
using (SPWeb thisWeb = site.OpenWeb()){
//base.ItemAdded(properties);//this.DisableEventFiring();thisWeb.AllowUnsafeUpdates =
true;SPList theList = thisWeb.Lists["Leadsheets"];//SPFile documentFile = properties.ListItem.File;SPListItem record = theList.Items[1];record.BreakRoleInheritance(
false);//ORIGINAL RECORD SPListItem record = theList.Items[1];//SPListItem record = theList.Items.Add();record[0] = user;
record.Update();
// uses SHAREPOINT\systemSPRoleAssignmentCollection perms = record.RoleAssignments;SPRoleDefinitionCollection roleDefinitions = thisWeb.RoleDefinitions;int count = perms.Count;//Remove all permissionsfor (int j = 0; j < count; j++){
perms.Remove(0);
}
//Add permissionssite.AllowUnsafeUpdates =
true;site.CatchAccessDeniedException =
true; SPRoleAssignment roleAssignment =newSPRoleAssignment(@"xx\ron","ron@ddd.com","Ron Touple","no notes");SPRoleAssignment roleAssignment1 =newSPRoleAssignment(@"xx\bmackey","bmackey@ddd.com","Brian Mackey","no notes");SPRoleAssignment roleAssignment2 =newSPRoleAssignment(@"xx\brad","brad@ddd.com","Brad Cook","no notes");SPRoleAssignment roleAssignment3 =newSPRoleAssignment(loginName, userEmail, userName,"no notes");SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;SPRoleDefinitionBindingCollection roleDefBindings1 = roleAssignment1.RoleDefinitionBindings;SPRoleDefinitionBindingCollection roleDefBindings2 = roleAssignment2.RoleDefinitionBindings;SPRoleDefinitionBindingCollection roleDefBindings3 = roleAssignment3.RoleDefinitionBindings;roleDefBindings.Add(roleDefinitions[
"Contribute"]);roleDefBindings1.Add(roleDefinitions[
"Contribute"]);roleDefBindings2.Add(roleDefinitions[
"Contribute"]);roleDefBindings3.Add(roleDefinitions[
"Contribute"]);perms.Add(roleAssignment);
perms.Add(roleAssignment1);
perms.Add(roleAssignment2);
perms.Add(roleAssignment3);
}
}
// this.EnableEventFiring();});

