using Umbraco.Cms.Core.Models.PublishedContent;
namespace Umbraco.Cms.Core.Security;
///
/// The user manager for members
///
public interface IMemberManager : IUmbracoUserManager
{
///
/// Returns the instance for the specified
///
///
///
IPublishedContent? AsPublishedMember(MemberIdentityUser user);
///
/// Returns the currently logged in member if there is one, else returns null
///
///
Task GetCurrentMemberAsync();
///
/// Checks if the current member is authorized based on the parameters provided.
///
/// Allowed types.
/// Allowed groups.
/// Allowed individual members.
/// True or false if the currently logged in member is authorized
Task IsMemberAuthorizedAsync(
IEnumerable? allowTypes = null,
IEnumerable? allowGroups = null,
IEnumerable? allowMembers = null);
///
/// Check if a member is logged in
///
///
bool IsLoggedIn();
///
/// Check if the current user has access to a document
///
/// The full path of the document object to check
/// True if the current user has access or if the current document isn't protected
Task MemberHasAccessAsync(string path);
///
/// Checks if the current user has access to the paths
///
///
///
Task> MemberHasAccessAsync(IEnumerable paths);
///
/// Check if a document object is protected by the "Protect Pages" functionality in umbraco
///
/// The full path of the document object to check
/// True if the document object is protected
Task IsProtectedAsync(string path);
Task> IsProtectedAsync(IEnumerable paths);
}