Add configuration option to alias entire domains and respective tests
This commit is contained in:
parent
48bd6b8981
commit
c90e09d125
3 changed files with 71 additions and 2 deletions
|
|
@ -28,9 +28,18 @@ with (import ./common.nix {inherit config;}); let
|
|||
map (from: {"${from}" = to;}) (value.aliases ++ lib.singleton name))
|
||||
cfg.accounts));
|
||||
|
||||
virtual_domain_aliases = let
|
||||
alias_domains =
|
||||
lib.concatMapAttrs (src: dst: {
|
||||
"@${src}" = "@${dst}";
|
||||
})
|
||||
cfg.virtualDomainAliases;
|
||||
in
|
||||
attrsToLookupTable alias_domains;
|
||||
|
||||
extra_virtual_aliases = attrsToLookupTable cfg.extraVirtualAliases;
|
||||
|
||||
all_virtual_aliases = mergeLookupTables [account_virtual_aliases extra_virtual_aliases];
|
||||
all_virtual_aliases = mergeLookupTables [account_virtual_aliases virtual_domain_aliases extra_virtual_aliases];
|
||||
|
||||
aliases_file = let
|
||||
content = lookupTableToString all_virtual_aliases;
|
||||
|
|
@ -65,6 +74,15 @@ with (import ./common.nix {inherit config;}); let
|
|||
tls_exclude_ciphers = "MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL";
|
||||
in {
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions =
|
||||
lib.mapAttrsToList (
|
||||
src: dst: {
|
||||
assertion = (builtins.elem src cfg.domains) && (builtins.elem dst cfg.domains);
|
||||
message = "Both aliased domain (${src}) and actual domain (${dst}) need to be managed by the mailserver.";
|
||||
}
|
||||
)
|
||||
cfg.virtualDomainAliases;
|
||||
|
||||
services.postfix = {
|
||||
enable = true;
|
||||
hostname = "${cfg.reverseFqdn}";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue