mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-03-20 15:41:40 -04:00
Add private and public email to vault response in API (#541)
This commit is contained in:
@@ -16,4 +16,9 @@ public class Config
|
||||
/// Gets or sets a value indicating whether public registration is enabled.
|
||||
/// </summary>
|
||||
public bool PublicRegistrationEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of private email domains that are available.
|
||||
/// </summary>
|
||||
public List<string> PrivateEmailDomains { get; set; } = [];
|
||||
}
|
||||
|
||||
@@ -35,8 +35,9 @@ using Microsoft.Extensions.Caching.Memory;
|
||||
/// <param name="timeProvider">ITimeProvider instance.</param>
|
||||
/// <param name="authLoggingService">AuthLoggingService instance.</param>
|
||||
/// <param name="cache">IMemoryCache instance.</param>
|
||||
/// <param name="config">Config instance.</param>
|
||||
[ApiVersion("1")]
|
||||
public class VaultController(ILogger<VaultController> logger, IAliasServerDbContextFactory dbContextFactory, UserManager<AliasVaultUser> userManager, ITimeProvider timeProvider, AuthLoggingService authLoggingService, IMemoryCache cache) : AuthenticatedRequestController(userManager)
|
||||
public class VaultController(ILogger<VaultController> logger, IAliasServerDbContextFactory dbContextFactory, UserManager<AliasVaultUser> userManager, ITimeProvider timeProvider, AuthLoggingService authLoggingService, IMemoryCache cache, Config config) : AuthenticatedRequestController(userManager)
|
||||
{
|
||||
/// <summary>
|
||||
/// Error message for providing an invalid current password (during password change).
|
||||
@@ -95,7 +96,9 @@ public class VaultController(ILogger<VaultController> logger, IAliasServerDbCont
|
||||
CurrentRevisionNumber = 0,
|
||||
EncryptionPublicKey = string.Empty,
|
||||
CredentialsCount = 0,
|
||||
EmailAddressList = new List<string>(),
|
||||
EmailAddressList = [],
|
||||
PrivateEmailDomainList = [],
|
||||
PublicEmailDomainList = [],
|
||||
CreatedAt = DateTime.MinValue,
|
||||
UpdatedAt = DateTime.MinValue,
|
||||
},
|
||||
@@ -117,6 +120,13 @@ public class VaultController(ILogger<VaultController> logger, IAliasServerDbCont
|
||||
});
|
||||
}
|
||||
|
||||
// Get dynamic list of private email domains from config.
|
||||
var privateEmailDomainList = config.PrivateEmailDomains;
|
||||
|
||||
// Hardcoded list of public (SpamOK) email domains that are available to the client.
|
||||
var publicEmailDomainList = new List<string>(["spamok.com", "solarflarecorp.com", "spamok.nl", "3060.nl",
|
||||
"landmail.nl", "asdasd.nl", "spamok.de", "spamok.com.ua", "spamok.es", "spamok.fr"]);
|
||||
|
||||
return Ok(new Shared.Models.WebApi.Vault.VaultGetResponse
|
||||
{
|
||||
Status = VaultStatus.Ok,
|
||||
@@ -129,6 +139,8 @@ public class VaultController(ILogger<VaultController> logger, IAliasServerDbCont
|
||||
EncryptionPublicKey = string.Empty,
|
||||
CredentialsCount = 0,
|
||||
EmailAddressList = [],
|
||||
PrivateEmailDomainList = privateEmailDomainList,
|
||||
PublicEmailDomainList = publicEmailDomainList,
|
||||
CreatedAt = vault.CreatedAt,
|
||||
UpdatedAt = vault.UpdatedAt,
|
||||
},
|
||||
@@ -168,6 +180,8 @@ public class VaultController(ILogger<VaultController> logger, IAliasServerDbCont
|
||||
EncryptionPublicKey = string.Empty,
|
||||
CredentialsCount = 0,
|
||||
EmailAddressList = [],
|
||||
PrivateEmailDomainList = [],
|
||||
PublicEmailDomainList = [],
|
||||
CreatedAt = x.CreatedAt,
|
||||
UpdatedAt = x.UpdatedAt,
|
||||
}).ToList(),
|
||||
|
||||
@@ -31,6 +31,9 @@ var config = new Config();
|
||||
var publicRegistrationEnabled = Environment.GetEnvironmentVariable("PUBLIC_REGISTRATION_ENABLED") ?? "false";
|
||||
config.PublicRegistrationEnabled = bool.Parse(publicRegistrationEnabled);
|
||||
|
||||
var privateEmailDomains = Environment.GetEnvironmentVariable("PRIVATE_EMAIL_DOMAINS")?.Split(",").Select(d => d.Trim());
|
||||
config.PrivateEmailDomains = privateEmailDomains?.ToList() ?? new List<string>();
|
||||
|
||||
builder.Services.AddSingleton(config);
|
||||
|
||||
builder.Services.ConfigureLogging(builder.Configuration, Assembly.GetExecutingAssembly().GetName().Name!, "../../logs");
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||
"JWT_KEY": "12345678901234567890123456789012",
|
||||
"DATA_PROTECTION_CERT_PASS": "Development",
|
||||
"PUBLIC_REGISTRATION_ENABLED": "true"
|
||||
"PUBLIC_REGISTRATION_ENABLED": "true",
|
||||
"PRIVATE_EMAIL_DOMAINS": "example.tld,example2.tld"
|
||||
},
|
||||
"dotnetRunMessages": true,
|
||||
"applicationUrl": "http://0.0.0.0:5092"
|
||||
@@ -21,7 +22,8 @@
|
||||
"ASPNETCORE_ENVIRONMENT": "Development",
|
||||
"JWT_KEY": "12345678901234567890123456789012",
|
||||
"DATA_PROTECTION_CERT_PASS": "Development",
|
||||
"PUBLIC_REGISTRATION_ENABLED": "true"
|
||||
"PUBLIC_REGISTRATION_ENABLED": "true",
|
||||
"PRIVATE_EMAIL_DOMAINS": "example.tld,example2.tld"
|
||||
},
|
||||
"dotnetRunMessages": true,
|
||||
"applicationUrl": "https://0.0.0.0:7223"
|
||||
|
||||
@@ -50,6 +50,16 @@ public class Vault
|
||||
/// </summary>
|
||||
public required List<string> EmailAddressList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of private email domains that are available.
|
||||
/// </summary>
|
||||
public required List<string> PrivateEmailDomainList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of public email domains that are available.
|
||||
/// </summary>
|
||||
public required List<string> PublicEmailDomainList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the date and time of creation.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user