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; } }
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 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; } }
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); } } } } } } }