70 lines
2.8 KiB
C#
70 lines
2.8 KiB
C#
using Bit.Core.Enums;
|
|
using Bit.Core.Services.EmailForwarders;
|
|
|
|
namespace Bit.Core.Models.Domain
|
|
{
|
|
public class UsernameGenerationOptions
|
|
{
|
|
public UsernameGenerationOptions()
|
|
{
|
|
ServiceType = ForwardedEmailServiceType.None;
|
|
}
|
|
|
|
public UsernameType Type { get; set; }
|
|
public ForwardedEmailServiceType ServiceType { get; set; }
|
|
public UsernameEmailType PlusAddressedEmailType { get; set; }
|
|
public UsernameEmailType CatchAllEmailType { get; set; }
|
|
public bool CapitalizeRandomWordUsername { get; set; }
|
|
public bool IncludeNumberRandomWordUsername { get; set; }
|
|
public string PlusAddressedEmail { get; set; }
|
|
public string CatchAllEmailDomain { get; set; }
|
|
public string FirefoxRelayApiAccessToken { get; set; }
|
|
public string SimpleLoginApiKey { get; set; }
|
|
public string DuckDuckGoApiKey { get; set; }
|
|
public string FastMailApiKey { get; set; }
|
|
public string AnonAddyApiAccessToken { get; set; }
|
|
public string AnonAddyDomainName { get; set; }
|
|
public string ForwardEmailApiAccessToken { get; set; }
|
|
public string ForwardEmailDomainName { get; set; }
|
|
public string EmailWebsite { get; set; }
|
|
|
|
public ForwarderOptions GetForwarderOptions()
|
|
{
|
|
if (Type != UsernameType.ForwardedEmailAlias)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
switch (ServiceType)
|
|
{
|
|
case ForwardedEmailServiceType.AnonAddy:
|
|
return new AnonAddyForwarderOptions
|
|
{
|
|
ApiKey = AnonAddyApiAccessToken,
|
|
DomainName = AnonAddyDomainName
|
|
};
|
|
case ForwardedEmailServiceType.DuckDuckGo:
|
|
return new ForwarderOptions { ApiKey = DuckDuckGoApiKey };
|
|
case ForwardedEmailServiceType.Fastmail:
|
|
return new FastmailForwarderOptions
|
|
{
|
|
ApiKey = FastMailApiKey,
|
|
Website = EmailWebsite
|
|
};
|
|
case ForwardedEmailServiceType.FirefoxRelay:
|
|
return new ForwarderOptions { ApiKey = FirefoxRelayApiAccessToken };
|
|
case ForwardedEmailServiceType.SimpleLogin:
|
|
return new ForwarderOptions { ApiKey = SimpleLoginApiKey };
|
|
case ForwardedEmailServiceType.ForwardEmail:
|
|
return new ForwardEmailForwarderOptions
|
|
{
|
|
ApiKey = ForwardEmailApiAccessToken,
|
|
DomainName = ForwardEmailDomainName
|
|
};
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|