Exemple #1
0
        private void Reset()
        {
            SquadronContext.StartMonitoringExceptions();

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                try
                {
                    int count = 0;
                    foreach (int i in ItemsList.CheckedIndices)
                    {
                        if (_permissionUtility.ResetToInherit(_selectedList[i].InternalObject as SPSecurableObject))
                        {
                            count++;
                        }
                    }

                    if (count < ItemsList.CheckedIndices.Count)
                    {
                        SquadronContext.Warn("Reset operation of some item(s) invoked errors. Please refresh & retry.");
                    }
                }
                catch (Exception ex)
                {
                    SquadronContext.HandleException(ex);
                }
                finally
                {
                    SquadronContext.StopMonitoringExceptions();
                    FooterPanel.Text = "Operation completed!";
                }
            });
        }
        public void RemoveUserFromWeb(SPWeb web, SPUser user)
        {
            bool old = web.AllowUnsafeUpdates;

            web.AllowUnsafeUpdates = true;
            web.Update();

            try
            {
                web.Users.Remove(user.LoginName);
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            foreach (SPGroup g in web.SiteGroups)
            {
                try
                {
                    g.RemoveUser(user);
                }
                catch (Exception ex)
                {
                    SquadronContext.HandleException(g, ex);
                }
            }

            web.AllowUnsafeUpdates = old;
            web.Update();
        }
Exemple #3
0
        public bool ResetToInherit(SPSecurableObject so)
        {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPUtility.ValidateFormDigest();

                try
                {
                    if (so is SPWeb)
                    {
                        ResetWebInheritance(so as SPWeb, true);
                    }

                    else if (so is SPList)
                    {
                        ResetListInheritance(so as SPList, true);
                    }

                    else if (so is SPListItem)
                    {
                        ResetItemInheritance(so as SPListItem, true);
                    }
                }
                catch (Exception ex)
                {
                    SquadronContext.HandleException(ex);
                }
            });

            return(true);
        }
Exemple #4
0
        public bool BreakInheritance(SPSecurableObject so)
        {
            try
            {
                if (so is SPWeb)
                {
                    SafeUpdate(so as SPWeb);

                    (so as SPWeb).AllowUnsafeUpdates = true;

                    so.BreakRoleInheritance(true);

                    SafeUpdate(so as SPWeb);
                }

                else if (so is SPList)
                {
                    ResetListInheritance(so as SPList, false);
                }

                else if (so is SPListItem)
                {
                    SafeUpdate((so as SPListItem).ParentList.ParentWeb);

                    (so as SPListItem).ParentList.ParentWeb.AllowUnsafeUpdates = true;
                    so.BreakRoleInheritance(true);
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            return(true);
        }
Exemple #5
0
        protected override bool InternalExecute()
        {
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                foreach (object o in this.SharePointObjects.OfType <SPSecurableObject>())
                {
                    try
                    {
                        SPSecurableObject so = o as SPSecurableObject;

                        if (so.HasUniqueRoleAssignments)
                        {
                            foreach (SPRoleAssignment ra in so.RoleAssignments)
                            {
                                if (ra.Member is SPUser)
                                {
                                    DetailsList.Add(new DirectPermissionEntity()
                                    {
                                        User  = ra.Member.LoginName,
                                        Title = _utility.GetDisplayName(o, false),
                                        Url   = _utility.GetUrl(o)
                                    });
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        SquadronContext.HandleException(o, ex);
                    }
                }
            });

            return(DisplayResult(DetailsList.Count == 0));
        }
        private void ApplyPermissionForWeb(PermissionEntity pentity, SPWeb web)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPUtility.ValidateFormDigest();

                    using (SPSite elevatedSite = new SPSite(web.Site.ID))
                    {
                        using (SPWeb elevatedWeb = elevatedSite.OpenWeb(web.ID))
                        {
                            if (pentity.PermissionType == "Inherit")
                            {
                                if (!elevatedWeb.IsRootWeb)
                                {
                                    elevatedWeb.ResetRoleInheritance();
                                }
                            }

                            else if (pentity.PermissionType == "Unique")
                            {
                                if (!elevatedWeb.IsRootWeb)
                                {
                                    elevatedWeb.BreakRoleInheritance(false);
                                }

                                ClearPermissions(elevatedWeb);
                                DeleteAllGroupsAndUsers(elevatedWeb);

                                foreach (RoleEntity rentity in pentity.Roles)
                                {
                                    if (rentity.Type == RoleTypeEnum.SharePointGroup)
                                    {
                                        DeleteGroup(elevatedWeb, rentity.AssignmentName);
                                        CreateGroup(elevatedWeb, rentity.AssignmentName, rentity.Owner);
                                        AddUsersToGroup(elevatedWeb, rentity.AssignmentName, rentity.Users);

                                        AssignPermissionLevels(elevatedWeb, rentity.AssignmentName, rentity.PermissionLevels);
                                    }


                                    else if ((rentity.Type == RoleTypeEnum.DomainGroup) ||
                                             (rentity.Type == RoleTypeEnum.User))
                                    {
                                        AssignPermissionLevelsToNonSharePointGroup(elevatedWeb, rentity.AssignmentName, rentity.PermissionLevels);
                                    }
                                }
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }
        }
        public IList <object> RefreshSharePointObjects(IList <object> objects)
        {
            SquadronHelper.Instance.StartAnimation();

            IList <object> result = new List <object>();

            _internalList = new List <object>();

            try
            {
                foreach (object o in objects)
                {
                    try
                    {
                        if (o is SPWebApplication)
                        {
                            result.Add(GetNewWebApplication(o as SPWebApplication));
                        }

                        else if (o is SPSite)
                        {
                            result.Add(GetNewSite(o as SPSite));
                        }

                        else if (o is SPWeb)
                        {
                            result.Add(GetNewWeb(o as SPWeb));
                        }

                        else if (o is SPList)
                        {
                            result.Add(GetNewList(o as SPList));
                        }

                        else if (o is SPListItem)
                        {
                            result.Add(GetNewListItem(o as SPListItem));
                        }

                        else
                        {
                            throw new ApplicationException("Invalid type!");
                        }
                    }
                    catch (Exception ex)
                    {
                        SquadronContext.HandleException(o, ex);
                    }
                }
            }
            finally
            {
                SquadronHelper.Instance.StopAnimation();
            }

            return(result);
        }
        private void ApplyPermissionForListItem(PermissionEntity pentity, SPListItem item)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPUtility.ValidateFormDigest();

                    using (SPSite elevatedSite = new SPSite(item.ParentList.ParentWeb.Site.ID))
                    {
                        using (SPWeb elevatedWeb = elevatedSite.OpenWeb(item.ParentList.ParentWeb.ID))
                        {
                            elevatedWeb.AllowUnsafeUpdates = true;

                            SPList elevatedList         = elevatedWeb.Lists[item.ParentList.Title];
                            SPListItem elevatedListItem = elevatedList.GetItemById(item.ID);
                            if (pentity.PermissionType == "Inherit")
                            {
                                elevatedListItem.ResetRoleInheritance();
                            }

                            else if (pentity.PermissionType == "Unique")
                            {
                                elevatedListItem.BreakRoleInheritance(false);

                                ClearPermissions(elevatedListItem);

                                foreach (RoleEntity rentity in pentity.Roles)
                                {
                                    if (rentity.Type == RoleTypeEnum.SharePointGroup)
                                    {
                                        // Do not delete as parents may use it, DeleteGroup(list.ParentWeb, rentity.AssignmentName);
                                        CreateGroup(elevatedListItem.ParentList.ParentWeb, rentity.AssignmentName, rentity.Owner);
                                        AddUsersToGroup(elevatedListItem.ParentList.ParentWeb, rentity.AssignmentName, rentity.Users);

                                        AssignPermissionLevels(elevatedListItem, rentity.AssignmentName, rentity.PermissionLevels);
                                    }

                                    else if ((rentity.Type == RoleTypeEnum.DomainGroup) ||
                                             (rentity.Type == RoleTypeEnum.User))
                                    {
                                        AssignPermissionLevelsToNonSharePointGroup(elevatedListItem, rentity.AssignmentName, rentity.PermissionLevels);
                                    }
                                }
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }
        }
        private IList <SPUser> GetUsers()
        {
            IList <SPUser> list = new List <SPUser>();

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWebApplication webApplication = SPWebApplication.Lookup(new Uri(_url));

                    foreach (SPSite site in webApplication.Sites)
                    {
                        foreach (SPWeb web in site.AllWebs)
                        {
                            foreach (SPUser user in web.AllUsers)
                            {
                                bool found = false;

                                if (string.IsNullOrEmpty(NameText.Text))
                                {
                                    found = true;
                                    AddUser(list, user);
                                }

                                else if (!string.IsNullOrEmpty(user.LoginName))
                                {
                                    if (user.LoginName.ToLower().Contains(NameText.Text.ToLower()))
                                    {
                                        found = true;
                                        AddUser(list, user);
                                    }

                                    if (!found)
                                    {
                                        if (user.Name.ToLower().Contains(NameText.Text.ToLower()))
                                        {
                                            found = true;
                                            AddUser(list, user);
                                        }
                                    }
                                }
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            return(list);
        }
        public void Execute()
        {
            grid.SelectionMode = DataGridViewSelectionMode.CellSelect;
            grid.DataSource    = null;
            _errorsOccurred    = false;

            SquadronHelper.Instance.StartAnimation();
            InitConstants();

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    Result.Clear();
                    _discardedCount = 0;

                    if (SelectedObjectsMode)
                    {
                        IterateSelectedObjects();
                    }
                    else
                    {
                        if (Scope == ScopeEnum.WebApplication)
                        {
                            WebApplicationScope();
                        }

                        else if (Scope == ScopeEnum.SiteCollection)
                        {
                            SiteCollectionScope();
                        }

                        else if (Scope == ScopeEnum.Site)
                        {
                            SiteScope();
                        }
                    }

                    ShowResultToGrid();
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }
            finally
            {
                SquadronHelper.Instance.StopAnimation();
            }
        }
 public void InvokeOnChange()
 {
     foreach (SquadronAddin addin in Addins)
     {
         try
         {
             addin.OnChange();
         }
         catch (Exception ex)
         {
             SquadronContext.HandleException(ex);
         }
     }
 }
Exemple #12
0
        private void ResetItemInheritance(SPListItem listItem, bool makeInherit)
        {
            SPWeb      elevatedWeb      = null;
            SPList     elevatedList     = null;
            SPListItem elevatedListItem = null;

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPUtility.ValidateFormDigest();

                    using (SPSite elevatedSite = new SPSite(listItem.ParentList.ParentWeb.Site.ID))
                    {
                        using (elevatedWeb = elevatedSite.OpenWeb(listItem.ParentList.ParentWeb.ID))
                        {
                            elevatedWeb.AllowUnsafeUpdates = true;

                            elevatedList     = elevatedWeb.Lists[listItem.ParentList.Title];
                            elevatedListItem = elevatedList.GetItemById(listItem.ID);

                            if (makeInherit)
                            {
                                elevatedListItem.ResetRoleInheritance();
                            }
                            else
                            {
                                elevatedListItem.BreakRoleInheritance(false);
                            }

                            elevatedListItem.Update();

                            elevatedWeb.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            finally
            {
                if (elevatedWeb != null)
                {
                    elevatedWeb.Dispose();
                }
            }
        }
Exemple #13
0
        private void ResetWebInheritance(SPWeb web, bool makeInherit)
        {
            SPWeb elevatedWeb = null;

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPUtility.ValidateFormDigest();

                    using (SPSite elevatedSite = new SPSite(web.Site.ID))
                    {
                        using (elevatedWeb = elevatedSite.OpenWeb(web.ID))
                        {
                            elevatedWeb.AllowUnsafeUpdates = true;

                            if (makeInherit)
                            {
                                elevatedWeb.ResetRoleInheritance();
                            }
                            else
                            {
                                elevatedWeb.BreakRoleInheritance(false);
                            }

                            elevatedWeb.Update();

                            elevatedWeb.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            finally
            {
                if (elevatedWeb != null)
                {
                    elevatedWeb.Dispose();
                }
            }
        }
Exemple #14
0
        private void PerformButton_Click(object sender, EventArgs e)
        {
            SquadronContext.WriteMessage("Started..");
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPSite site = new SPSite(SquadronContext.Url);
                UserProfileManager manager = null;

                try
                {
                    manager = new UserProfileManager(SPServiceContext.GetContext(site));
                }
                catch (Exception ex)
                {
                    SquadronContext.Errr("Unable to create UserProfileManager object!" + Environment.NewLine + "Please ensure Central Administration > User Profile Service Application > Permissions are set!");
                    SquadronContext.HandleException(ex);
                    return;
                }

                DataTable table = new DataTable();
                foreach (Property p in manager.Properties)
                {
                    table.Columns.Add(p.Name, typeof(string));
                }

                foreach (UserProfile profile in manager)
                {
                    DataRow row = table.NewRow();
                    foreach (Property property in manager.Properties)
                    {
                        row[property.Name] = profile[property.Name].Value;
                    }

                    table.Rows.Add(row);
                }

                grid.DataSource = table;

                SquadronContext.WriteMessage(table.Rows.Count.ToString() + " rows found");
                SquadronContext.WriteMessage("Completed.");
            });
        }
        public void RefreshData()
        {
            SquadronHelper.Instance.StartAnimation();

            try
            {
                explorer.Url = SquadronContext.Url;
            }
            catch (InvalidURLException iex)
            {
                SquadronContext.Errr(iex.Message.ToString(), "http://jeanpaulva.com/2013/04/01/squadron-invalid-url-exception-solutions/");
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }
            finally
            {
                SquadronHelper.Instance.StopAnimation();
            }
        }
Exemple #16
0
        public IList <SecurableObject> GetSecurableObjects(string url, ScopeEnum scope, bool includeSite, bool includeListAndLibrary, bool includeFolder, bool includeItem, bool includeInherited)
        {
            _securableObjects = new List <SecurableObject>();

            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    if (scope == ScopeEnum.WebApplication)
                    {
                        SPWebApplication webApplication = SPWebApplication.Lookup(new Uri(url));

                        foreach (SPSite site in webApplication.Sites)
                        {
                            // Site
                            if (includeSite)
                            {
                                GetWebSites(site, includeInherited, null);
                            }

                            // List
                            if (includeListAndLibrary)
                            {
                                GetLists(site, includeInherited);
                            }

                            // Folder
                            if (includeFolder)
                            {
                                GetFolders(site, includeInherited);
                            }

                            // List Item
                            if (includeItem)
                            {
                                GetListItems(site, includeInherited);
                            }
                        }
                    }

                    else if (scope == ScopeEnum.SiteCollection)
                    {
                        using (SPSite site = new SPSite(url))
                        {
                            // Site
                            if (includeSite)
                            {
                                GetWebSites(site, includeInherited, null);
                            }

                            // List
                            if (includeListAndLibrary)
                            {
                                GetLists(site, includeInherited);
                            }

                            // Folder
                            if (includeFolder)
                            {
                                GetFolders(site, includeInherited);
                            }

                            // List Item
                            if (includeItem)
                            {
                                GetListItems(site, includeInherited);
                            }
                        }
                    }

                    else if (scope == ScopeEnum.Site)
                    {
                        using (SPSite site = new SPSite(url))
                        {
                            foreach (SPWeb web in site.AllWebs)
                            {
                                if (Helper.Instance.AreUrlsEqual(web.Url, url))
                                {
                                    // Site
                                    if (includeSite)
                                    {
                                        GetWebSites(site, includeInherited, web);
                                    }

                                    // List
                                    if (includeListAndLibrary)
                                    {
                                        GetLists(site, includeInherited);
                                    }

                                    // Folder
                                    if (includeFolder)
                                    {
                                        GetFolders(site, includeInherited);
                                    }

                                    // List Item
                                    if (includeItem)
                                    {
                                        GetListItems(site, includeInherited);
                                    }
                                }
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            return(_securableObjects);
        }
        private void SiteCollectionScope()
        {
            SquadronContext.WriteDebugMessage("Entering SiteCollectionScope()");

            using (SPSite site = new SPSite(GetUrl()))
            {
                // Site
                if (SiteCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        ProcessWebSite(web);
                    }
                }

                // List
                if (ListCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        foreach (SPList list in web.Lists)
                        {
                            if (!IsListDiscarded(list))
                            {
                                ProcessList(list);
                            }
                        }
                    }
                }

                // List Item
                if (ItemCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        foreach (SPList list in web.Lists)
                        {
                            if (!IsListDiscarded(list))
                            {
                                try
                                {
                                    foreach (SPListItem folder in list.Folders)
                                    {
                                        ProcessListItem(folder, "Folder");
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SquadronContext.HandleException(ex);
                                }

                                try
                                {
                                    foreach (SPListItem item in list.Items)
                                    {
                                        ProcessListItem(item, "Item");
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SquadronContext.HandleException(ex);
                                }
                            }
                        }
                    }
                }
            }
        }
        private void ProcessListItem(SPListItem item, string type)
        {
            SquadronContext.WriteDebugMessage("Entering ProcessListItem() " + _utility.GetDisplayName(item, true));

            try
            {
                if (UniquePermissionsCheck.Checked)
                {
                    if (!item.HasUniqueRoleAssignments)
                    {
                        _discardedCount++;
                        return;
                    }
                }

                string permissionType = GetPermissionType(item);

                var pinfo = new PermissionInfo()
                {
                    Type           = type,
                    Title          = item.DisplayName,
                    Url            = item["EncodedAbsUrl"].ToString(),
                    PermissionType = permissionType,
                    InternalObject = item,
                    InheritUrl     = GetInheritedUrl(item)
                };

                if (IsFilterDiscard(pinfo.Url))
                {
                    return;
                }

                Result.Add(pinfo);

                if (permissionType.StartsWith("Inherit"))
                {
                    if (!ExpandInheritedCheck.Checked)
                    {
                        return;
                    }
                }

                string roleAssignment = string.Empty;
                int    count          = 0;

                foreach (SPRoleAssignment rolea in item.RoleAssignments)
                {
                    roleAssignment = rolea.Member.ToString();

                    string permissionLevels = string.Empty;
                    foreach (SPRoleDefinition roledef in rolea.RoleDefinitionBindings)
                    {
                        permissionLevels += roledef.Name + "; ";
                    }

                    Result.Add(
                        new PermissionInfo()
                    {
                        RoleAssignments  = roleAssignment,
                        RoleType         = GetRoleType(rolea.Member),
                        Owner            = GetOwner(rolea.Member),
                        PermissionLevels = permissionLevels,
                        UsersInGroup     = GetUsersInGroup(roleAssignment, item.ParentList.ParentWeb),
                        InternalObject   = item
                    }
                        );
                    count++;
                }

                if (count == 0)
                {
                    Result.Add(new PermissionInfo()
                    {
                        RoleAssignments = "(no assignments)"
                    });
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(new ObjectException(item, ex));
                _errorsOccurred = true;
            }
        }
        private void ProcessWebSite(SPWeb web)
        {
            SquadronContext.WriteDebugMessage("Entering ProcessWebSite() " + _utility.GetDisplayName(web, true));

            try
            {
                if (IsFilterDiscard(web.Url))
                {
                    return;
                }

                if (UniquePermissionsCheck.Checked)
                {
                    if (!web.HasUniqueRoleAssignments)
                    {
                        _discardedCount++;
                        return;
                    }
                }

                string permissionType = GetPermissionType(web);
                Result.Add(
                    new PermissionInfo()
                {
                    Type           = "Site",
                    Title          = web.Title,
                    Url            = web.Url,
                    PermissionType = permissionType,
                    InternalObject = web,
                    InheritUrl     = GetInheritedUrl(web)
                });

                if (permissionType.StartsWith("Inherit"))
                {
                    if (!ExpandInheritedCheck.Checked)
                    {
                        return;
                    }
                }

                string roleAssignment = string.Empty;

                int count = 0;

                foreach (SPRoleAssignment rolea in web.RoleAssignments)
                {
                    roleAssignment = rolea.Member.ToString();

                    string permissionLevels = string.Empty;
                    foreach (SPRoleDefinition roledef in rolea.RoleDefinitionBindings)
                    {
                        permissionLevels += roledef.Name + "; ";
                    }

                    Result.Add(
                        new PermissionInfo()
                    {
                        RoleAssignments  = roleAssignment,
                        RoleType         = GetRoleType(rolea.Member),
                        Owner            = GetOwner(rolea.Member),
                        PermissionLevels = permissionLevels,
                        UsersInGroup     = GetUsersInGroup(roleAssignment, web),
                        InternalObject   = web
                    }
                        );
                    count++;
                }

                if (count == 0)
                {
                    Result.Add(new PermissionInfo()
                    {
                        RoleAssignments = "(no assignments)"
                    });
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(new ObjectException(web, ex));
                _errorsOccurred = true;
            }
        }
        private void ProcessList(SPList list)
        {
            SquadronContext.WriteDebugMessage("Entering ProcessList() " + _utility.GetDisplayName(list, true));

            try
            {
                string type = "List";
                if (list is SPDocumentLibrary)
                {
                    type = "Library";
                }

                string url = SPUtility.GetFullUrl(list.ParentWeb.Site, list.DefaultViewUrl);

                if (IsFilterDiscard(url))
                {
                    return;
                }

                string permissionType = GetPermissionType(list);
                var    pinfo          = new PermissionInfo()
                {
                    Type           = type,
                    Title          = list.Title,
                    Url            = url,
                    PermissionType = permissionType,
                    InternalObject = list,
                    InheritUrl     = GetInheritedUrl(list)
                };

                Result.Add(pinfo);

                if (permissionType.StartsWith("Inherit"))
                {
                    if (!ExpandInheritedCheck.Checked)
                    {
                        return;
                    }
                }

                string roleAssignment = string.Empty;
                int    count          = 0;

                foreach (SPRoleAssignment rolea in list.RoleAssignments)
                {
                    roleAssignment = rolea.Member.ToString();

                    string permissionLevels = string.Empty;
                    foreach (SPRoleDefinition roledef in rolea.RoleDefinitionBindings)
                    {
                        permissionLevels += roledef.Name + "; ";
                    }

                    Result.Add(
                        new PermissionInfo()
                    {
                        RoleAssignments  = roleAssignment,
                        RoleType         = GetRoleType(rolea.Member),
                        Owner            = GetOwner(rolea.Member),
                        PermissionLevels = permissionLevels,
                        UsersInGroup     = GetUsersInGroup(roleAssignment, list.ParentWeb),
                        InternalObject   = list.ParentWeb
                    }
                        );

                    count++;
                }

                if (count == 0)
                {
                    Result.Add(new PermissionInfo()
                    {
                        RoleAssignments = "(no assignments)"
                    });
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(new ObjectException(list, ex));
                _errorsOccurred = true;
            }
        }
Exemple #21
0
        private string GetDisplay(object o)
        {
            string result = string.Empty;

            try
            {
                if (o is SPWebApplication)
                {
                    result = (o as SPWebApplication).DisplayName;
                }

                else if (o is SPSite)
                {
                    result = (o as SPSite).Url;
                }

                else if (o is SPWeb)
                {
                    result = (o as SPWeb).Title;

                    if (ShowUrlsChecked.Checked)
                    {
                        if (!ShowFlatCheck.Checked)
                        {
                            result += "  [" + (o as SPWeb).Url + "]";
                        }
                    }
                }

                else if (o is SPList)
                {
                    result = (o as SPList).Title;
                    if (ShowUrlsChecked.Checked)
                    {
                        if (!ShowFlatCheck.Checked)
                        {
                            result += "  [" + (o as SPList).DefaultViewUrl + "]";
                        }
                    }

                    if (ShowItemCountCheck.Checked)
                    {
                        if (!ShowFlatCheck.Checked)
                        {
                            result += " (" + (o as SPList).Items.Count.ToString() + ")";
                        }
                    }
                }

                else if (o is SPListItem)
                {
                    result = (o as SPListItem).DisplayName;

                    if (ShowVersionCountCheck.Checked)
                    {
                        if (!ShowFlatCheck.Checked)
                        {
                            result += " (" + (o as SPListItem).Versions.Count.ToString() + ")";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            return(result);
        }
        public HashSet <ADEntity> GetAll(string domain, bool groups, bool users, bool showStatusForUser)
        {
            HashSet <ADEntity> list = new HashSet <ADEntity>();

            try
            {
                PrincipalContext context = null;

                if (string.IsNullOrEmpty(domain))
                {
                    context = new PrincipalContext(ContextType.Domain);
                }

                else
                {
                    context = new PrincipalContext(ContextType.Domain, domain);
                }

                // Security Groups
                if (groups)
                {
                    GroupPrincipal    group    = new GroupPrincipal(context);
                    PrincipalSearcher searcher = new PrincipalSearcher(group);

                    foreach (GroupPrincipal principal in searcher.FindAll())
                    {
                        list.Add(new ADEntity()
                        {
                            Name           = principal.Name,
                            Description    = principal.Description,
                            LoginName      = principal.SamAccountName,
                            InternalObject = principal,
                            Type           = GetGroupType(principal),
                            IsEnabled      = IsEnabled(principal.GetUnderlyingObject() as DirectoryEntry)
                        });
                    }
                }

                // Users
                if (users)
                {
                    UserPrincipal     userp    = new UserPrincipal(context);
                    PrincipalSearcher searcher = new PrincipalSearcher(userp);

                    foreach (UserPrincipal principal in searcher.FindAll())
                    {
                        list.Add(new ADEntity()
                        {
                            Name           = principal.Name, // + GetStatus(showStatusForUser, principal),
                            Description    = principal.Description,
                            LoginName      = principal.SamAccountName,
                            InternalObject = principal,
                            Type           = "User",
                            IsEnabled      = IsEnabled(principal.GetUnderlyingObject() as DirectoryEntry),
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                SquadronContext.HandleException(ex);
            }

            return(list);
        }
        public IList <object> GetSharePointObjects(
            string url,
            bool webapp,
            bool sitecollection,
            bool website,
            bool listNLibrary,
            bool itemNdocument,
            string siteCollectionFilterUrl
            )
        {
            IList <object> result = new List <object>();

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                SPWebApplication webApplication = SPWebApplication.Lookup(new Uri(url));

                if (webApplication != null)
                {
                    if (webapp)
                    {
                        result.Add(webApplication);
                    }

                    if (sitecollection || website || listNLibrary || itemNdocument)
                    {
                        foreach (SPSite site in webApplication.Sites)
                        {
                            if (!IsFilterValid(site.Url, siteCollectionFilterUrl))
                            {
                                continue;
                            }

                            if (sitecollection)
                            {
                                result.Add(site);
                            }

                            if (website || listNLibrary || itemNdocument)
                            {
                                foreach (SPWeb web in site.AllWebs)
                                {
                                    try
                                    {
                                        if (website)
                                        {
                                            result.Add(web);
                                        }

                                        if (listNLibrary || itemNdocument)
                                        {
                                            foreach (SPList list in web.Lists)
                                            {
                                                try
                                                {
                                                    if (list.Hidden)
                                                    {
                                                        continue;
                                                    }

                                                    if (listNLibrary)
                                                    {
                                                        result.Add(list);
                                                    }

                                                    if (itemNdocument)
                                                    {
                                                        foreach (SPListItem item in list.Items)
                                                        {
                                                            if (itemNdocument)
                                                            {
                                                                result.Add(item);
                                                            }
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    SquadronContext.HandleException(list, ex);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        SquadronContext.HandleException(web, ex);
                                    }
                                }
                            }
                        }
                    }
                }
            });

            return(result);
        }
        public void WebApplicationScope()
        {
            SquadronContext.WriteDebugMessage("Entering WebApplicationScope()");

            SPWebApplication webApplication = SPWebApplication.Lookup(new Uri(GetUrl()));

            foreach (SPSite site in webApplication.Sites)
            {
                // Site
                if (SiteCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        ProcessWebSite(web);
                    }
                }

                // List
                if (ListCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        foreach (SPList list in web.Lists)
                        {
                            if (!IsListDiscarded(list))
                            {
                                ProcessList(list);
                            }
                        }
                    }
                }

                // List Item
                if (ItemCheck.Checked)
                {
                    foreach (SPWeb web in site.AllWebs)
                    {
                        foreach (SPList list in web.Lists)
                        {
                            if (!IsListDiscarded(list))
                            {
                                try
                                {
                                    foreach (SPListItem folder in list.Folders)
                                    {
                                        ProcessListItem(folder, "Folder");
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SquadronContext.HandleException(ex);
                                }

                                try
                                {
                                    foreach (SPListItem item in list.Items)
                                    {
                                        ProcessListItem(item, "Item");
                                    }
                                }
                                catch (Exception ex)
                                {
                                    SquadronContext.HandleException(ex);
                                }
                            }
                        }
                    }
                }
            }
        }
        private void Delete()
        {
            var checkedItems = new List <NameEntity>();

            foreach (NameEntity o in ItemsList.CheckedItems)
            {
                checkedItems.Add(o);
            }

            int errorCount = 0;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                foreach (NameEntity ne in checkedItems)
                {
                    SPSecurableObject spso = ne.SecurableObject.InternalObject as SPSecurableObject;
                    ne.Deleted             = false;

                    try
                    {
                        if (string.IsNullOrEmpty(ne.ContainerSPGroup))
                        {
                            spso.RoleAssignments.Remove(ne.Principal);
                        }
                        else
                        {
                            RemoveUserFromSharePointGroup(ne, spso);
                        }

                        ne.Deleted = true;
                    }
                    catch (Exception ex)
                    {
                        SquadronContext.WriteMessage(ex.ToString());
                        errorCount++;
                        ne.Deleted = false;
                    }

                    // Remove from Groups
                    if (ne.Principal is SPGroup)
                    {
                        if (spso is SPWeb)
                        {
                            try
                            {
                                if (string.IsNullOrEmpty(ne.ContainerSPGroup))
                                {
                                    bool old = (spso as SPWeb).AllowUnsafeUpdates;

                                    (spso as SPWeb).AllowUnsafeUpdates = true;
                                    (spso as SPWeb).Update();

                                    (spso as SPWeb).SiteGroups.Remove(ne.Principal.Name);

                                    (spso as SPWeb).AllowUnsafeUpdates = old;
                                    (spso as SPWeb).Update();
                                }

                                ne.Deleted = true;
                            }
                            catch (Exception ex)
                            {
                                SquadronContext.HandleException(spso, ex);
                                errorCount++;
                                ne.Deleted = false;
                            }
                        }
                    }

                    if (ne.Deleted)
                    {
                        ItemsList.Items.Remove(ne);
                    }
                }
            });

            // Display
            if (errorCount > 0)
            {
                SquadronContext.Info("Error(s) occured.  Please see the master log for details!");
            }
        }