namespace SharepointToolbox.Core.Models; /// /// Flat record representing one permission assignment on a SharePoint object. /// Mirrors the $entry object built by the PowerShell Generate-PnPSitePermissionRpt function. /// public record PermissionEntry( string ObjectType, // "Site Collection" | "Site" | "List" | "Folder" string Title, string Url, bool HasUniquePermissions, string Users, // Semicolon-joined display names string UserLogins, // Semicolon-joined login names string PermissionLevels, // Semicolon-joined role names (Limited Access already removed) string GrantedThrough, // "Direct Permissions" | "SharePoint Group: " string PrincipalType, // "SharePointGroup" | "User" | "External User" bool WasAutoElevated = false, // Set to true when site admin was auto-granted to access this entry // Resolved target for Limited Access System Group For Web/List and SharingLinks // groups — populated when GrantedThrough is one of those system groups, null otherwise. string? TargetUrl = null, string? TargetLabel = null, string? SharingLinkType = null // OrganizationEdit | OrganizationView | AnonymousEdit | AnonymousView | etc. );