using System.Threading.Tasks; using Oqtane.Models; namespace Oqtane.Managers { public interface IUserManager { User GetUser(int userid, int siteid); User GetUser(string username, int siteid); User GetUser(string username, string email, int siteid); Task AddUser(User user); Task UpdateUser(User user); Task DeleteUser(int userid, int siteid); Task LoginUser(User user, bool setCookie, bool isPersistent); Task VerifyEmail(User user, string token); Task ForgotPassword(User user); Task ResetPassword(User user, string token); User VerifyTwoFactor(User user, string token); Task LinkExternalAccount(User user, string token, string type, string key, string name); Task ValidatePassword(string password); } }