, cn ? ""
, sn ? ""
, userPassword ? null # Use slappasswd -o module-load=pw-pbkdf2 -h "{PBKDF2-SHA256}"
-, mailAlias ? []
+, mailAlias ? [ ]
, homeDirectory ? ""
, mailHomeDirectory ? null
, mailStorageDirectory ? null
, loginShell ? "/run/current-system/sw/bin/bash"
, mailEnabled ? true
-, mailForwardingAddress ? []
+, mailForwardingAddress ? [ ]
, mailGroupMember ? domainGroup
, mailQuota ? null
}:
- "\n" + lib.concatStringsSep "\n\n" [
- (unlines ([ ''
- dn: uid=${uid},ou=accounts,ou=posix,${domainSuffix}
- objectClass: person
- objectClass: posixAccount
- objectClass: shadowAccount
- objectClass: PostfixBookMailAccount
- objectClass: PostfixBookMailForward
- cn: ${cn}
- sn: ${sn}
- mail: ${uid}@${domain}
- mailEnabled: ${if mailEnabled then "TRUE" else "FALSE"}
- mailGroupMember: ${mailGroupMember}''
+"\n" + lib.concatStringsSep "\n\n" [
+ (unlines ([
+ ''
+ dn: uid=${uid},ou=accounts,ou=posix,${domainSuffix}
+ objectClass: person
+ objectClass: posixAccount
+ objectClass: shadowAccount
+ objectClass: PostfixBookMailAccount
+ objectClass: PostfixBookMailForward
+ cn: ${cn}
+ sn: ${sn}
+ mail: ${uid}@${domain}
+ mailEnabled: ${if mailEnabled then "TRUE" else "FALSE"}
+ mailGroupMember: ${mailGroupMember}''
]
++ [ "uidNumber: ${toString uidNumber}" ]
++ [ "gidNumber: ${toString gidNumber}" ]
++ [ "homeDirectory: ${homeDirectory}" ]
- ++ lib.optional (loginShell != null) "loginShell: ${loginShell}"
+ ++ lib.optional (loginShell != null) "loginShell: ${loginShell}"
++ lib.optional (userPassword != null) "userPassword: ${userPassword}"
++ lib.optional (mailHomeDirectory != null) "mailHomeDirectory: ${mailHomeDirectory}"
++ lib.optional (mailStorageDirectory != null) "mailStorageDirectory: ${mailStorageDirectory}"
++ lib.optional (mailQuota != null) "mailQuota: ${mailQuota}"
++ map (forward: "mailForwardingAddress: ${forward}") mailForwardingAddress
++ map (alias: "mailAlias: ${alias}@${domain}") mailAlias
- ++ lib.optional (mailAlias == []) "mailAlias:"
- # mailAlias is required by PostfixBookMailForward
- ))
- ''
- dn: cn=${uid},ou=groups,ou=posix,${domainSuffix}
- objectClass: top
- objectClass: posixGroup
- gidNumber: ${toString gidNumber}
- memberUid: ${uid}
- ''
+ ++ lib.optional (mailAlias == [ ]) "mailAlias:"
+ # mailAlias is required by PostfixBookMailForward
+ ))
+ ''
+ dn: cn=${uid},ou=groups,ou=posix,${domainSuffix}
+ objectClass: top
+ objectClass: posixGroup
+ gidNumber: ${toString gidNumber}
+ memberUid: ${uid}
+ ''
]