using System.Threading.Tasks;
using IwbZero.MultiTenancy;
namespace IwbZero.Authorization.Base.Users
{
///
/// This is a helper base class to easily update .
/// Implements some methods as default but you can override all methods.
///
/// Tenant type
/// User type
public abstract class DefaultExternalAuthenticationSource : IExternalAuthenticationSource
where TTenant : IwbTenant
where TUser : UserBase, new()
{
///
public abstract string Name { get; }
///
public abstract Task TryAuthenticateAsync(string userNameOrEmailAddress, string plainPassword, TTenant tenant);
///
public virtual Task CreateUserAsync(string userNameOrEmailAddress, TTenant tenant)
{
return Task.FromResult(
new TUser
{
UserName = userNameOrEmailAddress,
Name = userNameOrEmailAddress,
Surname = userNameOrEmailAddress,
EmailAddress = userNameOrEmailAddress,
IsEmailConfirmed = true,
IsActive = true
});
}
///
public virtual Task UpdateUserAsync(TUser user, TTenant tenant)
{
return Task.FromResult(0);
}
}
}