This is the snippet which will add a permission group in the document library’s folders.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text;
   4:  using Microsoft.SharePoint;
   5:   
   6:  namespace ConsoleApplication1
   7:  {
   8:      class Program
   9:      {
  10:          static void Main(string[] args)
  11:          {
  12:              Console.WriteLine("Enter your site URL");
  13:              string strSiteName = Console.ReadLine();
  14:   
  15:              Console.WriteLine("Enter your document library name");
  16:              string strDocumentLibrary = Console.ReadLine();
  17:   
  18:              Console.WriteLine("Enter your group name");
  19:              string strGroup = Console.ReadLine();
  20:   
  21:              Assign(strSiteName, strDocumentLibrary, strGroup);
  22:   
  23:              Console.WriteLine("Done!");
  24:              Console.ReadLine();
  25:          }
  26:   
  27:          public static void Assign(string strSiteName, string strDocumentLibrary, string strGroup)
  28:          {
  29:              SPSite WebApp = new SPSite(strSiteName);
  30:              SPWeb Site = WebApp.OpenWeb();
  31:              SPList list = Site.Lists[strDocumentLibrary];
  32:              SPContentTypeCollection oContentTypes = list.ContentTypes;
  33:              String url = list.RootFolder.ServerRelativeUrl.ToString();
  34:   
  35:              foreach (SPListItem folder in list.Folders)
  36:              {
  37:                  WebApp.AllowUnsafeUpdates = true;
  38:                  Site.AllowUnsafeUpdates = true;
  39:   
  40:                  SPRoleDefinitionCollection roleDefinitions = Site.RoleDefinitions;
  41:                  SPRoleAssignmentCollection roleAssignments = folder.RoleAssignments;
  42:   
  43:                  SPGroup grp = Site.Groups[strGroup];
  44:                  SPRoleAssignment roleAssignment = new SPRoleAssignment(grp);
  45:                  SPRoleDefinitionBindingCollection roleDefBindings = roleAssignment.RoleDefinitionBindings;
  46:   
  47:                  roleDefBindings.Add(roleDefinitions["Contribute"]);
  48:                  roleAssignments.Add(roleAssignment);
  49:   
  50:                  WebApp.AllowUnsafeUpdates = false;
  51:                  Site.AllowUnsafeUpdates = false;
  52:              }
  53:              Site.Close();
  54:              WebApp.Close();
  55:              Site.Dispose();
  56:              WebApp.Dispose();
  57:          }
  58:      }
  59:  }

I have tested this code for a folder “test12” in “RFC” document library. The permission group which I added is “test1”.

Result

clip_image001

 

KEYWORDS:
====================
Permission inheritance, adding SharePoint group at each folder level in a document library