]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap-storage, doveadm: Ignore INBOX ACLs when accessing server metadata
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 14 Jan 2020 12:58:05 +0000 (14:58 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Thu, 23 Jan 2020 12:36:05 +0000 (12:36 +0000)
The server metadata is always accessible. INBOX's ACLs aren't relevant,
even though internally for now we're using INBOX for storing the server
metadata.

src/doveadm/doveadm-mail-mailbox-metadata.c
src/lib-imap-storage/imap-metadata.c

index c75123e9f7ba84528aed48d6eac4de84f6e5b526..ec5b6023a5f94ac77a56638fba31d54727471ec5 100644 (file)
@@ -35,9 +35,11 @@ cmd_mailbox_metadata_open_mailbox(struct metadata_cmd_context *mctx,
                        return -1;
                }
 
-               /* server attribute */
+               /* Server attribute. It shouldn't depend on INBOX's ACLs,
+                  so ignore them. */
                *ns_r = mail_namespace_find_inbox(user->namespaces);
-               *box_r = mailbox_alloc((*ns_r)->list, "INBOX", 0);
+               *box_r = mailbox_alloc((*ns_r)->list, "INBOX",
+                                      MAILBOX_FLAG_IGNORE_ACLS);
 
                mctx->key = t_strconcat(MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT_SERVER,
                                        mctx->key, NULL);
index 03d5b571a77beb8ab087267604c9c8f3f6dc1223..0674bada0f5886c3a557218d1ef8d14e9f3650dc 100644 (file)
@@ -243,7 +243,8 @@ imap_metadata_transaction_begin_server(struct mail_user *user)
        struct imap_metadata_transaction *imtrans;
 
        ns = mail_namespace_find_inbox(user->namespaces);
-       box = mailbox_alloc(ns->list, "INBOX", 0);
+       /* Server metadata shouldn't depend on INBOX's ACLs, so ignore them. */
+       box = mailbox_alloc(ns->list, "INBOX", MAILBOX_FLAG_IGNORE_ACLS);
        mailbox_set_reason(box, "Server METADATA");
        imtrans = imap_metadata_transaction_begin(box);
        imtrans->server = TRUE;