Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ClientContext objContext = new ClientContext("https://test.sharepoint.com/sites/AnkitTest/");
- var securePassword = new SecureString();
- var usernameqw = "ankitk@m";
- var pwdqq = "xyz";
- foreach (char c in pwdqq)
- {
- securePassword.AppendChar(c);
- }
- var onlineCredentials = new SharePointOnlineCredentials(usernameqw, securePassword);
- objContext.Credentials = onlineCredentials;
- Web web = objContext.Web;
- Microsoft.SharePoint.Client.GroupCollection groupColl = web.SiteGroups;
- GroupCreationInformation objCreateInfo = new GroupCreationInformation();
- objCreateInfo.Title = groupname;
- Microsoft.SharePoint.Client.Group objGroup = objContext.Web.SiteGroups.Add(objCreateInfo);
- RoleDefinition objDefination = objContext.Web.RoleDefinitions.GetByName("Full Control");
- RoleDefinitionBindingCollection objBindingColl = new RoleDefinitionBindingCollection(objContext);
- objBindingColl.Add(objDefination);
- objContext.Web.RoleAssignments.Add(objGroup, objBindingColl);
- objContext.ExecuteQuery();
- List ls = objContext.Web.Lists.GetByTitle("RequestForm");
- objContext.Load(ls);
- objContext.ExecuteQuery();
- AddPermission(objContext,ls, groupname, "Full Control");
- }
- }
- }
- }
- }
- }
- public static void AddPermission(ClientContext cpx,List list, string groupName, string permissionName)
- {
- Web web = cpx.Web;
- Site site = cpx.Site;
- Principal userGroup = FindUSerorSiteGroup(groupName,cpx,site, groupName);
- RoleAssignment spRoleAssign = list.RoleAssignments.GetByPrincipal(userGroup);
- RoleDefinition role = web.RoleDefinitions.GetByName("Contribute");
- spRoleAssign.RoleDefinitionBindings.Add(role);
- spRoleAssign.Update();
- list.Update();
- cpx.Load(list);
- cpx.ExecuteQuery();//Excpetion occuring at this point
- }
- private static Principal FindUSerorSiteGroup(string groupname,ClientContext coj,Site site, string userOrGroup)
- {
- Principal myuser = null;
- Web web = coj.Web;
- if (userOrGroup != null)
- {
- Microsoft.SharePoint.Client.GroupCollection gs = coj.Web.SiteGroups;
- coj.Load(gs);
- coj.Load(site.RootWeb.SiteGroups);
- coj.ExecuteQuery();
- //might be a group
- foreach (Microsoft.SharePoint.Client.Group g in site.RootWeb.SiteGroups)
- {
- if (g.Title.ToUpper() == userOrGroup.ToUpper())
- {
- myuser = g;
- break;
- }
- }
- }
- return myuser;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement