set virtual_alias_maps for LDAP

This commit is contained in:
Christian Ulrich 2024-11-10 23:46:17 +01:00
parent 93e2e9395c
commit de81e88692
No known key found for this signature in database
GPG Key ID: 8241BE099775A097
1 changed files with 16 additions and 0 deletions

View File

@ -191,6 +191,19 @@ let
passwordFile = cfg.ldap.bind.passwordFile;
destination = ldapVirtualMailboxMapFile;
};
ldapVirtualAliasMap = pkgs.writeText "ldap-virtual-alias-map.cf" ''
${commonLdapConfig}
query_filter = ${cfg.ldap.postfix.filter}
result_attribute = ${cfg.ldap.postfix.mailAttribute}
'';
ldapVirtualAliasMapFile = "/run/postfix/ldap-virtual-alias-map.cf";
appendPwdInVirtualAliasMap = appendLdapBindPwd {
name = "ldap-virtual-alias-map";
file = ldapVirtualAliasMap;
prefix = "bind_pw = ";
passwordFile = cfg.ldap.bind.passwordFile;
destination = ldapVirtualAliasMapFile;
};
in
{
config = with cfg; lib.mkIf enable {
@ -198,6 +211,7 @@ in
systemd.services.postfix-setup = lib.mkIf cfg.ldap.enable {
preStart = ''
${appendPwdInVirtualMailboxMap}
${appendPwdInVirtualAliasMap}
${appendPwdInSenderLoginMap}
'';
restartTriggers = [ appendPwdInVirtualMailboxMap appendPwdInSenderLoginMap ];
@ -242,6 +256,8 @@ in
];
virtual_alias_maps = lib.mkAfter (lib.optionals (regex_valiases_postfix != {}) [
(mappedRegexFile "regex_valias")
] ++ lib.optionals (cfg.ldap.enable) [
"ldap:${ldapVirtualAliasMapFile}"
]);
virtual_transport = "lmtp:unix:/run/dovecot2/dovecot-lmtp";
# Avoid leakage of X-Original-To, X-Delivered-To headers between recipients