dovecot: respect the mailDirectory base for LDAP home directories

This change is safe, if you have not altered the default value of the
 `mailserver.mailDirectory` setting.
This commit is contained in:
Martin Weinelt 2025-05-22 01:52:17 +02:00
parent 6a78dc3375
commit 7cb61e6e3a
No known key found for this signature in database
GPG key ID: 87C1E9888F856759
3 changed files with 40 additions and 2 deletions

View file

@ -1,6 +1,21 @@
{ config, lib, ... }:
{
assertions = lib.optionals config.mailserver.enable [
assertions = [
{
assertion = config.mailserver.stateVersion < 2
&& config.mailserver.ldap.enable
&& config.mailserver.mailDirectory != "/var/vmail";
message = ''
Issue: The dovecot homedir for LDAP users was previously not respecting `mailserver.mailDirectory`.
Remediation:
- Stop the `dovecot2.service`
- Move `/var/vmail/ldap` below your `mailserver.mailDirectory`
- Increase the `stateVersion` to 2.
Check https://nixos-mailserver.readthedocs.io/en/latest/migrations.html#ldap-home-directory-migration for more information.
'';
}
] ++ lib.optionals config.mailserver.enable [
{
assertion = config.mailserver.stateVersion != null;
message = "The `mailserver.stateVersion` option is not set. Check https://nixos-mailserver.readthedocs.io/en/latest/migrations.html to determine the proper value to initialize it at.";

View file

@ -356,7 +356,7 @@ in
userdb {
driver = ldap
args = ${ldapConfFile}
default_fields = home=/var/vmail/ldap/%{user} uid=${toString cfg.vmailUID} gid=${toString cfg.vmailUID}
default_fields = home=${cfg.mailDirectory}/ldap/%{user} uid=${toString cfg.vmailUID} gid=${toString cfg.vmailUID}
}
''}