From: Timo Sirainen Date: Sun, 16 Aug 2009 00:41:55 +0000 (-0400) Subject: acl: When looking up ACL defaults, use global/local default files if they exist. X-Git-Tag: 2.0.alpha1~252 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=94ea25b3b8c52b8f00860b4d12b9650aa1086233;p=thirdparty%2Fdovecot%2Fcore.git acl: When looking up ACL defaults, use global/local default files if they exist. --HG-- branch : HEAD --- diff --git a/src/plugins/acl/acl-api.c b/src/plugins/acl/acl-api.c index 6e888efa2b..d091bbc7f4 100644 --- a/src/plugins/acl/acl-api.c +++ b/src/plugins/acl/acl-api.c @@ -31,21 +31,13 @@ int acl_object_have_right(struct acl_object *aclobj, unsigned int right_idx) struct acl_backend *backend = aclobj->backend; const struct acl_mask *have_mask; - if (*aclobj->name == '\0') { - /* we want to look up default rights */ + if (backend->v.object_refresh_cache(aclobj) < 0) + return -1; + + have_mask = acl_cache_get_my_rights(backend->cache, aclobj->name); + if (have_mask == NULL) { if (acl_backend_get_default_rights(backend, &have_mask) < 0) return -1; - } else { - if (backend->v.object_refresh_cache(aclobj) < 0) - return -1; - - have_mask = acl_cache_get_my_rights(backend->cache, - aclobj->name); - if (have_mask == NULL) { - if (acl_backend_get_default_rights(backend, - &have_mask) < 0) - return -1; - } } return acl_cache_mask_isset(have_mask, right_idx); @@ -89,20 +81,13 @@ static int acl_object_get_my_rights_real(struct acl_object *aclobj, pool_t pool, struct acl_backend *backend = aclobj->backend; const struct acl_mask *mask; - if (*aclobj->name == '\0') { - /* we want to look up default rights */ + if (backend->v.object_refresh_cache(aclobj) < 0) + return -1; + + mask = acl_cache_get_my_rights(backend->cache, aclobj->name); + if (mask == NULL) { if (acl_backend_get_default_rights(backend, &mask) < 0) return -1; - } else { - if (backend->v.object_refresh_cache(aclobj) < 0) - return -1; - - mask = acl_cache_get_my_rights(backend->cache, - aclobj->name); - if (mask == NULL) { - if (acl_backend_get_default_rights(backend, &mask) < 0) - return -1; - } } *rights_r = acl_backend_mask_get_names(backend, mask, pool);