Item Level Permissions

From WSSWiki

Jump to: navigation, search


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
Personal tools