using Umbraco.Cms.Core.Models.Membership;
using Umbraco.Cms.Core.Services.OperationStatus;
namespace Umbraco.Cms.Core.Security;
///
/// Manages persistence of users.
///
public interface IBackOfficeUserStore
{
///
/// Saves an
///
/// to Save
/// A task resolving into an .
Task SaveAsync(IUser user);
///
/// Disables an
///
/// to disable.
/// A task resolving into an .
Task DisableAsync(IUser user);
///
/// Get an by username
///
/// Username to use for retrieval.
///
/// A task resolving into an
///
Task GetByUserNameAsync(string username);
///
/// Get an by email
///
/// Email to use for retrieval.
///
/// A task resolving into an
///
Task GetByEmailAsync(string email);
///
/// Gets a user by Id
///
/// Id of the user to retrieve
///
/// A task resolving into an
///
Task GetAsync(int id);
///
/// Gets a user by it's key.
///
/// Key of the user to retrieve.
/// Task resolving into an .
Task GetAsync(Guid key);
Task> GetUsersAsync(params Guid[]? keys);
Task> GetUsersAsync(params int[]? ids);
///
/// Gets a list of objects associated with a given group
///
/// Id of group.
///
/// A task resolving into an
///
Task> GetAllInGroupAsync(int groupId);
}