Fix private email domain init (#1098)

This commit is contained in:
Leendert de Borst
2025-08-07 16:10:57 +02:00
committed by Leendert de Borst
parent 6577021bd7
commit daccab9bcc
6 changed files with 22 additions and 20 deletions

View File

@@ -41,7 +41,10 @@ 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());
var privateEmailDomains = Environment.GetEnvironmentVariable("PRIVATE_EMAIL_DOMAINS")?
.Split(",", StringSplitOptions.RemoveEmptyEntries)
.Select(d => d.Trim())
.Where(d => !string.IsNullOrWhiteSpace(d));
config.PrivateEmailDomains = privateEmailDomains?.ToList() ?? new List<string>();
var ipLoggingEnabled = Environment.GetEnvironmentVariable("IP_LOGGING_ENABLED") ?? "false";

View File

@@ -24,12 +24,6 @@ builder.Configuration.AddJsonFile($"appsettings.{builder.HostEnvironment.Environ
var config = new Config();
builder.Configuration.Bind(config);
if (config.PrivateEmailDomains == null || config.PrivateEmailDomains.Count == 0)
{
throw new KeyNotFoundException("PrivateEmailDomains is not set in the configuration.");
}
builder.Services.AddSingleton(config);
// Add localization services

View File

@@ -29,8 +29,13 @@ fi
# The app will use a relative URL instead (base url + "/api/" which is the default for the Docker setup).
sed -i "s|\"ApiUrl\": \"http://localhost:5092\",||g" /usr/share/nginx/html/appsettings.json
# Convert comma-separated list to JSON array
json_array=$(echo $PRIVATE_EMAIL_DOMAINS | awk '{split($0,a,","); printf "["; for(i=1;i<=length(a);i++) {printf "\"%s\"", a[i]; if(i<length(a)) printf ","} printf "]"}')
# Handle empty PRIVATE_EMAIL_DOMAINS by defaulting to empty array
if [ -z "$PRIVATE_EMAIL_DOMAINS" ]; then
json_array="[]"
else
# Convert comma-separated list to JSON array
json_array=$(echo $PRIVATE_EMAIL_DOMAINS | awk '{split($0,a,","); printf "["; for(i=1;i<=length(a);i++) {printf "\"%s\"", a[i]; if(i<length(a)) printf ","} printf "]"}')
fi
# Use sed to update the PrivateEmailDomains field in appsettings.json
sed -i.bak "s|\"PrivateEmailDomains\": \[.*\]|\"PrivateEmailDomains\": $json_array|" /usr/share/nginx/html/appsettings.json

View File

@@ -20,23 +20,23 @@ services:
admin:
image: aliasvault-admin
build:
context: ../
dockerfile: ../apps/server/AliasVault.Admin/Dockerfile
context: .
dockerfile: apps/server/AliasVault.Admin/Dockerfile
reverse-proxy:
image: aliasvault-reverse-proxy
build:
context: ../
dockerfile: ../apps/server/Dockerfile
context: .
dockerfile: apps/server/Dockerfile
smtp:
image: aliasvault-smtp
build:
context: ../
dockerfile: ../apps/server/Services/AliasVault.SmtpService/Dockerfile
context: .
dockerfile: apps/server/Services/AliasVault.SmtpService/Dockerfile
task-runner:
image: aliasvault-task-runner
build:
context: ../
dockerfile: ../apps/server/Services/AliasVault.TaskRunner/Dockerfile
context: .
dockerfile: apps/server/Services/AliasVault.TaskRunner/Dockerfile

View File

@@ -4,8 +4,8 @@ services:
ports:
- "5433:5432"
volumes:
- ../database/postgres-dev:/var/lib/postgresql/data:rw
- ../apps/server/Databases/AliasServerDb/postgresql.conf:/etc/postgresql/postgresql.conf
- ./database/postgres-dev:/var/lib/postgresql/data:rw
- ./apps/server/Databases/AliasServerDb/postgresql.conf:/etc/postgresql/postgresql.conf
environment:
- POSTGRES_DB=aliasvault
- POSTGRES_USER=aliasvault

View File

@@ -2705,7 +2705,7 @@ check_and_populate_env() {
fi
# PRIVATE_EMAIL_DOMAINS
if ! grep -q "^PRIVATE_EMAIL_DOMAINS=" "$ENV_FILE" || [ -z "$(grep "^PRIVATE_EMAIL_DOMAINS=" "$ENV_FILE" | cut -d '=' -f2)" ]; then
if ! grep -q "^PRIVATE_EMAIL_DOMAINS=" "$ENV_FILE"; then
update_env_var "PRIVATE_EMAIL_DOMAINS" ""
printf " Set PRIVATE_EMAIL_DOMAINS\n"
fi