Search This Blog

Sunday, February 27, 2011

Manage Item Level Permissions Programmatically

Many times we are into a situation like we need to manage the Item Level Permissions programmatically.
Below is the code snippet by which we can manage Item Level Permissions programmatically.

            SPSite objSPSite = new SPSite("<Site URL>");
            SPWeb objSPWeb = objSPSite.OpenWeb();
            SPList oSPList = objSPWeb.Lists["<List NAme>"];

            //Create new user to grant access
            SPUserCollection users = objSPWeb.Users;
            SPUser CurrentUser = users[@"SHAREPOINT\system"];
            foreach (SPListItem objSPListItem in oSPList.Items)
                //Remove all Permissions
                //Grant permissions to List Items
                AddNewPermission(objSPListItem, objSPWeb, SPRoleType.Contributor, CurrentUser);

Function to remove all Permissions from a List Item
private static void RemoveAllPermissions(SPListItem CurrentlistItem)
            SPRoleAssignmentCollection objSPRoleAssColn = CurrentlistItem.RoleAssignments;
            for (int i = objSPRoleAssColn.Count - 1; i >=0 ; i--)

Function To add new permission to a List Item
        private static void AddNewPermission(SPListItem ListItem, SPWeb objSPWeb, SPRoleType objSPRoleType, SPPrincipal objSPPrincipal)
            SPRoleDefinition objSPRoleDefinition = objSPWeb.RoleDefinitions.GetByType(objSPRoleType);
            SPRoleAssignment objSPRoleAssignment = new SPRoleAssignment(objSPPrincipal);

No comments:

Post a Comment