aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/euandre/queue.scm42
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)