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