]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
acl: Ignore acls in acl_lookup_dict_rebuild_add_backend if ignore_acls is set
authorMarkus Valentin <markus.valentin@open-xchange.com>
Thu, 1 Jul 2021 08:46:05 +0000 (10:46 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Mon, 5 Jul 2021 11:47:12 +0000 (11:47 +0000)
In case an namespace has been configured to ignore ACLs also respect
that when acl_lookup_dict_rebuild is called.

Co-Authored-By: Vincent Brillault <vincent.brillault@cern.ch>
src/plugins/acl/acl-lookup-dict.c

index 61d5fa8793fd8092d473bd3be2f8360f56feb390..bd6182cae7a18d0f7d6f20c5b3a4107850a73e49 100644 (file)
@@ -105,6 +105,7 @@ acl_rights_is_same_user(const struct acl_rights *right, struct mail_user *user)
 static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns,
                                               ARRAY_TYPE(const_string) *ids)
 {
+       struct acl_mailbox_list *alist = ACL_LIST_CONTEXT(ns->list);
        struct acl_backend *backend;
        struct acl_mailbox_list_context *ctx;
        struct acl_object *aclobj;
@@ -115,7 +116,7 @@ static int acl_lookup_dict_rebuild_add_backend(struct mail_namespace *ns,
        int ret = 0;
 
        if ((ns->flags & NAMESPACE_FLAG_NOACL) != 0 || ns->owner == NULL ||
-           ACL_LIST_CONTEXT(ns->list) == NULL)
+           alist == NULL || alist->ignore_acls)
                return 0;
 
        id = t_str_new(128);