struct acl_object *aclobj;
int ret, ret2;
+ if (alist->ignore_acls)
+ return 1;
+
aclobj = !parent ?
acl_object_init_from_name(backend, name) :
acl_object_init_from_parent(backend, name);
v->iter_init = acl_mailbox_list_iter_init;
v->iter_next = acl_mailbox_list_iter_next;
v->iter_deinit = acl_mailbox_list_iter_deinit;
+ if (acl_namespace_is_ignored(list))
+ alist->ignore_acls = TRUE;
MODULE_CONTEXT_SET(list, acl_mailbox_list_module, alist);
}
/* this namespace is empty. don't attempt to lookup ACLs,
because they're not going to work anyway and we could
crash doing it. */
- } else if (!acl_namespace_is_ignored(list)) {
+ } else {
acl_mailbox_list_init_default(list);
}
}
return;
}
- if (mail_namespace_is_shared_user_root(box->list->ns)) {
+ if (mail_namespace_is_shared_user_root(box->list->ns) || alist->ignore_acls) {
/* this is the root shared namespace, which itself doesn't
have any existing mailboxes. */
ignore_acls = TRUE;