namespace SharepointToolbox.Core.Models; /// /// Classifies how a user received a permission assignment. /// public enum AccessType { /// User is directly assigned a role on the object. Direct, /// User is a member of a SharePoint group that has the role. Group, /// Permission is inherited from a parent object (not unique). Inherited } /// /// One row in the User Access Audit results grid. /// Represents a single permission that a specific user holds on a specific object. /// public record UserAccessEntry( string UserDisplayName, // e.g. "Alice Smith" string UserLogin, // e.g. "alice@contoso.com" or "i:0#.f|membership|alice@contoso.com" string SiteUrl, // The site collection URL where this permission exists string SiteTitle, // The site collection title string ObjectType, // "Site Collection" | "Site" | "List" | "Folder" string ObjectTitle, // Name of the list/folder/site string ObjectUrl, // URL of the specific object string PermissionLevel, // e.g. "Full Control", "Contribute" AccessType AccessType, // Direct | Group | Inherited string GrantedThrough, // "Direct Permissions" | "SharePoint Group: Members" etc. bool IsHighPrivilege, // True for Full Control, Site Collection Administrator bool IsExternalUser // True if login contains #EXT# );