namespace SharepointToolbox.Core.Helpers; /// /// Pure static helpers for classifying SharePoint permission entries. /// public static class PermissionEntryHelper { /// /// Returns true when the login name is a B2B guest (contains #EXT#). /// public static bool IsExternalUser(string loginName) => loginName.Contains("#EXT#", StringComparison.OrdinalIgnoreCase); /// /// Removes "Limited Access" from the supplied permission levels. /// Returns the remaining levels; returns an empty list when all are removed. /// public static IReadOnlyList FilterPermissionLevels(IEnumerable levels) => levels .Where(l => !string.Equals(l, "Limited Access", StringComparison.OrdinalIgnoreCase)) .ToList(); /// /// Returns true when the login name represents an internal sharing-link group /// or the "Limited Access System Group" pseudo-principal. /// public static bool IsSharingLinksGroup(string loginName) => loginName.StartsWith("SharingLinks.", StringComparison.OrdinalIgnoreCase) || loginName.Equals("Limited Access System Group", StringComparison.OrdinalIgnoreCase); }