From 2fc2efa794784678eb92d9c9fd157339f9cd56ed Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 16 Sep 2011 16:01:53 +0300 Subject: [PATCH] acl: Fixed listing multiple shared namespaces. --- src/plugins/acl/acl-plugin.h | 3 ++- src/plugins/acl/acl-shared-storage.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/acl/acl-plugin.h b/src/plugins/acl/acl-plugin.h index deb8e40789..ce24ef5e14 100644 --- a/src/plugins/acl/acl-plugin.h +++ b/src/plugins/acl/acl-plugin.h @@ -21,7 +21,6 @@ struct acl_user { const char *const *groups; struct acl_lookup_dict *acl_lookup_dict; - time_t last_shared_add_check; }; struct acl_storage_rights_context { @@ -32,6 +31,8 @@ struct acl_storage_rights_context { struct acl_mailbox_list { union mailbox_list_module_context module_ctx; struct acl_storage_rights_context rights; + + time_t last_shared_add_check; }; extern MODULE_CONTEXT_DEFINE(acl_storage_module, &mail_storage_module_register); diff --git a/src/plugins/acl/acl-shared-storage.c b/src/plugins/acl/acl-shared-storage.c index 06c737bff8..a08dd71d59 100644 --- a/src/plugins/acl/acl-shared-storage.c +++ b/src/plugins/acl/acl-shared-storage.c @@ -65,6 +65,7 @@ acl_shared_namespace_add(struct mail_namespace *ns, int acl_shared_namespaces_add(struct mail_namespace *ns) { struct acl_user *auser = ACL_USER_CONTEXT(ns->user); + struct acl_mailbox_list *alist = ACL_LIST_CONTEXT(ns->list); struct mail_storage *storage = ns->storage; struct acl_lookup_dict_iter *iter; const char *name; @@ -72,11 +73,11 @@ int acl_shared_namespaces_add(struct mail_namespace *ns) i_assert(ns->type == NAMESPACE_SHARED); i_assert(strcmp(storage->name, SHARED_STORAGE_NAME) == 0); - if (ioloop_time < auser->last_shared_add_check + SHARED_NS_RETRY_SECS) { + if (ioloop_time < alist->last_shared_add_check + SHARED_NS_RETRY_SECS) { /* already added, don't bother rechecking */ return 0; } - auser->last_shared_add_check = ioloop_time; + alist->last_shared_add_check = ioloop_time; iter = acl_lookup_dict_iterate_visible_init(auser->acl_lookup_dict); while ((name = acl_lookup_dict_iterate_visible_next(iter)) != NULL) { -- 2.47.3