Esempio n. 1
0
        static void AssignGroupReadPermission(string oWebUrl) //,Web oWebs)
        {
            //Set groups Read on site collection level.
            LogSummery("==============Site Group -- Start Reading group for site-collection to assign them Read Only permission.====================");
            ClientContext ctx      = new ClientContext(oWebUrl);
            Web           oWebsite = ctx.Web;

            ctx.Load(oWebsite, w => w.Title);
            ctx.ExecuteQuery();
            #region Group and User Read Permission
            //var groups = oWebsite.SiteGroups;
            RoleAssignmentCollection roleAssignments = oWebsite.RoleAssignments;
            ctx.Load(roleAssignments);
            try
            {
                ctx.ExecuteQuery();
            }
            catch (Exception ex) { Console.WriteLine("Error Found in " + ex.StackTrace + "and the error is" + ex.Message.ToString()); }
            foreach (RoleAssignment roleAssignment in roleAssignments.ToList())
            {
                ctx.Load(roleAssignment, s => s.Member.Title, s => s.Member.LoginName, s => s.Member.Id, s => s.Member.PrincipalType, s => s.RoleDefinitionBindings.Include(d => d.Name));
                try
                {
                    ctx.ExecuteQuery();
                }
                catch (Exception ex) { Console.WriteLine("Error Found in " + ex.StackTrace + "and the error is" + ex.Message.ToString()); }
                if (roleAssignment.Member.PrincipalType.ToString() == "SharePointGroup")
                {
                    LogSummery("Site Group -- Working on group : " + roleAssignment.Member.Title + " has permission: " + (roleAssignment.RoleDefinitionBindings[0].Name));
                    daTable.Rows.Add(oWebsite.Title, oWebUrl, roleAssignment.Member.Title, "SharePointGroup", roleAssignment.RoleDefinitionBindings[0].Name);
                }
                else if (roleAssignment.Member.PrincipalType.ToString() == "User")
                {
                    User user          = null;
                    var  userLoginName = roleAssignment.Member.LoginName.Split('|')[1];
                    if (userLoginName != "hcltech\\devadmin")
                    {
                        user = ctx.Web.EnsureUser(userLoginName);

                        ctx.Load(user);
                        ctx.ExecuteQuery();
                    }
                    LogSummery("Site Group -- Working on User : "******" has permission:" + (roleAssignment.RoleDefinitionBindings[0].Name));
                    daTable.Rows.Add(oWebsite.Title, oWebUrl, userLoginName = (userLoginName == "hcltech\\devadmin") ? userLoginName : userLoginName + "(" + user.Email + ")", "User", roleAssignment.RoleDefinitionBindings[0].Name);
                }
                //roleAssignment.RoleDefinitionBindings.RemoveAll();
                //roleAssignment.Update();
                try
                {
                    ctx.Load(roleAssignment);
                    ctx.ExecuteQuery();
                    LogSummery("Site Group -- Successfully removed the existing permission for : " + roleAssignment.Member.Title);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error Found in " + ex.StackTrace + "and the error is" + ex.Message.ToString());
                    LogSummery("Site Group -- Fail to remove the existing permission for : " + roleAssignment.Member.Title + ". Baucase " + ex.Message.ToString());
                }
                //Assign Read permission..
                //RoleDefinition roleDefinition = ctx.Web.RoleDefinitions.GetByType(RoleType.Reader);
                //RoleDefinitionBindingCollection roleDefinitionBindingColl = new RoleDefinitionBindingCollection(ctx);
                // roleDefinitionBindingColl.Add(roleDefinition);
                //RoleAssignment roleAssign = ctx.Web.RoleAssignments.Add(roleAssignment.Member, roleDefinitionBindingColl);

                try
                {
                    //ctx.ExecuteQuery();
                    LogSummery("Site Group -- Successfully assigned Read permission on group : " + roleAssignment.Member.Title);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error Found in " + ex.StackTrace + "and the error is" + ex.Message.ToString());
                    LogSummery("Site Group -- Fail to assign Read permission on group : " + roleAssignment.Member.Title + ". Baucause " + ex.Message.ToString());
                }
                #endregion
                #region User Read permission
                //LogSummery("Start assigning read permission to Users of web..");
                //UserCollection oUsers = ctx.Web.SiteUsers;
                //try
                //{
                //    ctx.Load(oUsers);
                //    ctx.ExecuteQuery();
                //    LogSummery("Found total users : " + oUsers.Count);
                //}
                //catch (Exception ex)
                //{
                //    LogSummery("Fail in getting users bacause " + ex.Message.ToString());
                //}

                //foreach (User oUser in oUsers)
                //{
                //    if (!oUser.IsSiteAdmin)
                //    {
                //        LogSummery("Working for user : "******"Fail in getting user role assignment because : " + ex.Message.ToString() + "Error on line number 268."); }
                //        // Assign Read permission..
                //        RoleDefinition userRoleDefinition = ctx.Web.RoleDefinitions.GetByType(RoleType.Reader);
                //        RoleDefinitionBindingCollection userRoleDefinitionBindingColl = new RoleDefinitionBindingCollection(ctx);
                //        userRoleDefinitionBindingColl.Add(userRoleDefinition);
                //        RoleAssignment userRoleAssign = ctx.Web.RoleAssignments.Add(oUser, userRoleDefinitionBindingColl);

                //        try
                //        {
                //            ctx.ExecuteQuery();

                //        }
                //        catch (Exception ex) { LogSummery("Error in setting read permission for User " + oUser.Title + ". Because " + ex.Message.ToString() + "Error on line number 281."); }
                //    }
                //}
                //daTable.Rows.Add(oWebsite.Title, oWebUrl, roleAssignment.Member.Title, "","", roleAssignment.RoleDefinitionBindings[0].Name);
                #endregion
            }
            LogSummery("==============Site Group -- Completed Reading group for site-collection to assign them Read Only permission.====================");
        }