Item Level Permissions
From WSSWiki
Contents |
[edit] Programmatically Setting Permissions
The following example shows how to programmatically set permissions for a list item within SharePoint
[edit] C# Example
using (SPSite site = new SPSite("http://sharepointsite"))
{
using (SPWeb web = site.OpenWeb())
{
web.AllowUnsafeUpdates = true;
SPRoleDefinition definition = web.RoleDefinitions.GetByType(SPRoleType.Contributor);
SPList list = web.Lists["Announcements"];
if (list.Items.Count > 0)
{
SPListItem listItem = list.Items[0];
SPRoleAssignment assignment = new SPRoleAssignment(web.SiteUsers[@"domain\user"]);
assignment.RoleDefinitionBindings.Add(definition);
if (!listItem.HasUniqueRoleAssignments)
listItem.BreakRoleInheritance(false); // true if you want to copy permissions
listItem.RoleAssignments.Add(assignment);
}
}
}
[edit] VB.NET Example
Using site As SPSite = New SPSite("http://sharepointsite")
Using web As SPWeb = site.OpenWeb()
web.AllowUnsafeUpdates = True
Dim definition As SPRoleDefinition = web.RoleDefinitions.GetByType(SPRoleType.Contributor)
Dim list As SPList = web.Lists("Announcements")
If list.Items.Count > 0 Then
Dim item As SPListItem = list.Items(0)
Dim assignment As SPRoleAssignment = New SPRoleAssignment(web.SiteUsers("domain\user"))
If Not item.HasUniqueRoleAssignments Then
item.BreakRoleInheritance(False) ' true if you want to copy permissions
End If
item.RoleAssignments.Add(assignment)
End If
End Using
End Using
