Remove accounts.<name>.aliases and rename extraVirtualAliases to virtualAccountAliases
Some checks failed
Test / tests (push) Failing after 3m0s
Some checks failed
Test / tests (push) Failing after 3m0s
In order to simplify configuration and reduce configuration variability, this commit removes the option to directly add aliases to each single mail account. Instead, aliaes should be centrally configured using the option 'virtualAccountAliases'.
This commit is contained in:
parent
28796695af
commit
faf6f549b0
3 changed files with 15 additions and 53 deletions
|
|
@ -92,17 +92,6 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
aliases = lib.mkOption {
|
||||
type = with lib.types; listOf types.str;
|
||||
example = ["abuse@example.com" "postmaster@example.com"];
|
||||
default = [];
|
||||
description = ''
|
||||
A list of aliases of this login account.
|
||||
Note: Use list entries like "@example.com" to create a catchAll
|
||||
that allows sending from all email addresses in these domain.
|
||||
'';
|
||||
};
|
||||
|
||||
isSystemUser = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
|
|
@ -153,7 +142,7 @@ in {
|
|||
default = {};
|
||||
};
|
||||
|
||||
extraVirtualAliases = lib.mkOption {
|
||||
virtualAccountAliases = lib.mkOption {
|
||||
type = let
|
||||
account = lib.mkOptionType {
|
||||
name = "Mail Account";
|
||||
|
|
|
|||
|
|
@ -21,25 +21,15 @@ with (import ./common.nix {inherit config;}); let
|
|||
|
||||
mergeLookupTables = tables: lib.zipAttrsWith (n: v: lib.flatten v) tables;
|
||||
|
||||
account_virtual_aliases = mergeLookupTables (lib.flatten (lib.mapAttrsToList
|
||||
(name: value: let
|
||||
to = name;
|
||||
in
|
||||
map (from: {"${from}" = to;}) (value.aliases ++ lib.singleton name))
|
||||
cfg.accounts));
|
||||
virtual_accounts = mergeLookupTables (lib.map (name: {"${name}" = name;}) (lib.attrNames cfg.accounts));
|
||||
virtual_account_aliases = attrsToLookupTable cfg.virtualAccountAliases;
|
||||
|
||||
virtual_domain_aliases = let
|
||||
alias_domains =
|
||||
lib.concatMapAttrs (src: dst: {
|
||||
"@${src}" = "@${dst}";
|
||||
})
|
||||
cfg.virtualDomainAliases;
|
||||
alias_domains = lib.mapAttrs' (src: dst: lib.nameValuePair "@${src}" "@${dst}") cfg.virtualDomainAliases;
|
||||
in
|
||||
attrsToLookupTable alias_domains;
|
||||
|
||||
extra_virtual_aliases = attrsToLookupTable cfg.extraVirtualAliases;
|
||||
|
||||
all_virtual_aliases = mergeLookupTables [account_virtual_aliases virtual_domain_aliases extra_virtual_aliases];
|
||||
all_virtual_aliases = mergeLookupTables [virtual_accounts virtual_account_aliases virtual_domain_aliases];
|
||||
|
||||
aliases_file = let
|
||||
content = lookupTableToString all_virtual_aliases;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue