diff options
-rw-r--r-- | src/org/euandre/queue.scm | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/src/org/euandre/queue.scm b/src/org/euandre/queue.scm index 25fb6e5..129109d 100644 --- a/src/org/euandre/queue.scm +++ b/src/org/euandre/queue.scm @@ -1331,30 +1331,29 @@ correctly."))) dovecot-configuration make-dovecot-configuration dovecot-configuration? - (dovecot dovecot-configuration-dovecot (default dovecot)) - (mail-in-home? dovecot-configuration-mail-in-home? (default #f)) - (raw-file dovecot-configuration-raw-file (default #f)) - (extra-content dovecot-configuration-extra-content (default "")) - (config-dirname dovecot-configuration-config-dirname (default "dovecot")) - (config-filename dovecot-configuration-config-filename (default "dovecot.conf")) - (user dovecot-configuration-user (default "dovecot")) - (group dovecot-configuration-group (default "dovecot")) - (auth-worker-group dovecot-configuration-auth-worker-group (default "etc-shadow")) - (untrusted-user dovecot-configuration-untrusted-user (default "dovenull")) - (untrusted-group dovecot-configuration-untrusted-group (default "dovenull")) - (base-dir dovecot-configuration-base-dir (default "/var/run/dovecot")) - (state-dir dovecot-configuration-state-dir (default "/var/lib/dovecot")) - (hostname dovecot-configuration-hostname (default (gethostname)))) - - -;; FIXME: -;; mail_plugins + (dovecot dovecot-configuration-dovecot (default dovecot)) + (mail-in-home? dovecot-configuration-mail-in-home? (default #f)) + (raw-file dovecot-configuration-raw-file (default #f)) + (extra-content dovecot-configuration-extra-content (default "")) + (config-dirname dovecot-configuration-config-dirname (default "dovecot")) + (config-filename dovecot-configuration-config-filename (default "dovecot.conf")) + (user dovecot-configuration-user (default "dovecot")) + (group dovecot-configuration-group (default "dovecot")) + (supplementary-groups dovecot-configuration-supplementary-groups (default '())) + (auth-worker-group dovecot-configuration-auth-worker-group (default "etc-shadow")) + (untrusted-user dovecot-configuration-untrusted-user (default "dovenull")) + (untrusted-group dovecot-configuration-untrusted-group (default "dovenull")) + (untrusted-supplementary-groups dovecot-configuration-untrusted-supplementary-groups (default '())) + (base-dir dovecot-configuration-base-dir (default "/var/run/dovecot")) + (state-dir dovecot-configuration-state-dir (default "/var/lib/dovecot")) + (hostname dovecot-configuration-hostname (default (gethostname)))) + (define (generate-dovecot-config config) (match-record config <dovecot-configuration> (mail-in-home? user group auth-worker-group untrusted-user hostname base-dir state-dir extra-content) (format #f - "protocols = imap + "protocols = imap default_internal_user = ~a default_internal_group = ~a @@ -1436,11 +1435,13 @@ namespace inbox { (define (dovecot-accounts config) (match-record config <dovecot-configuration> - (user group untrusted-user untrusted-group) + ( user group supplementary-groups + untrusted-user untrusted-group untrusted-supplementary-groups) (list (user-account (name user) (group group) + (supplementary-groups supplementary-groups) (comment "Dovecot system user") (home-directory "/var/empty") (create-home-directory? #f) @@ -1450,6 +1451,7 @@ namespace inbox { (user-account (name untrusted-user) (group untrusted-group) + (supplementary-groups untrusted-supplementary-groups) (comment "Dovecot user for untrusted logins") (home-directory "/var/empty") (create-home-directory? #f) |