Lines Matching defs:aclobj

48 	struct acl_object *aclobj = *_aclobj;
51 aclobj->backend->v.object_deinit(aclobj);
54 int acl_object_have_right(struct acl_object *aclobj, unsigned int right_idx)
56 struct acl_backend *backend = aclobj->backend;
60 if (backend->v.object_refresh_cache(aclobj) < 0)
63 have_mask = acl_cache_get_my_rights(backend->cache, aclobj->name);
72 if (mailbox_list_get_user(aclobj->backend->list)->dsyncing) {
77 read_idx = acl_backend_lookup_right(aclobj->backend,
117 static int acl_object_get_my_rights_real(struct acl_object *aclobj, pool_t pool,
120 struct acl_backend *backend = aclobj->backend;
123 if (backend->v.object_refresh_cache(aclobj) < 0)
126 mask = acl_cache_get_my_rights(backend->cache, aclobj->name);
136 int acl_object_get_my_rights(struct acl_object *aclobj, pool_t pool,
142 return acl_object_get_my_rights_real(aclobj, pool, rights_r);
144 ret = acl_object_get_my_rights_real(aclobj, pool, rights_r);
149 const char *const *acl_object_get_default_rights(struct acl_object *aclobj)
151 return acl_backend_mask_get_names(aclobj->backend,
152 aclobj->backend->default_aclmask,
156 int acl_object_last_changed(struct acl_object *aclobj, time_t *last_changed_r)
158 return aclobj->backend->v.last_changed(aclobj, last_changed_r);
161 int acl_object_update(struct acl_object *aclobj,
164 return aclobj->backend->v.object_update(aclobj, update);
167 struct acl_object_list_iter *acl_object_list_init(struct acl_object *aclobj)
169 return aclobj->backend->v.object_list_init(aclobj);
178 return iter->aclobj->backend->v.object_list_next(iter, rights_r);
186 return iter->aclobj->backend->v.object_list_deinit(iter);
190 acl_default_object_list_init(struct acl_object *aclobj)
200 iter->aclobj = aclobj;
202 if (!array_is_created(&aclobj->rights)) {
205 acl_cache_flush(aclobj->backend->cache, aclobj->name);
208 if (aclobj->backend->v.object_refresh_cache(aclobj) < 0)
211 aclobj_rights = array_get(&aclobj->rights, &iter->count);
470 void acl_rights_sort(struct acl_object *aclobj)
475 if (!array_is_created(&aclobj->rights))
478 array_sort(&aclobj->rights, acl_rights_cmp);
481 rights = array_get_modifiable(&aclobj->rights, &count);
485 acl_right_names_merge(aclobj->rights_pool,
488 acl_right_names_merge(aclobj->rights_pool,
497 array_delete(&aclobj->rights, dest, count - dest);
734 static void apply_owner_default_rights(struct acl_object *aclobj)
743 ru.rights.rights = aclobj->backend->default_rights;
745 acl_cache_update(aclobj->backend->cache, aclobj->name, &ru);
748 void acl_object_rebuild_cache(struct acl_object *aclobj)
756 acl_cache_flush(aclobj->backend->cache, aclobj->name);
758 if (!array_is_created(&aclobj->rights))
771 rights = array_get(&aclobj->rights, &count);
772 if (!acl_backend_user_is_owner(aclobj->backend))
784 apply_owner_default_rights(aclobj);
789 if (!acl_backend_rights_match_me(aclobj->backend, &rights[i]))
819 acl_cache_update(aclobj->backend->cache, aclobj->name, &ru);
823 void acl_object_remove_all_access(struct acl_object *aclobj)
831 array_append(&aclobj->rights, &rights, 1);
835 array_append(&aclobj->rights, &rights, 1);
838 void acl_object_add_global_acls(struct acl_object *aclobj)
840 struct acl_backend *backend = aclobj->backend;
843 if (mailbox_list_is_valid_name(backend->list, aclobj->name, &error))
844 vname = mailbox_list_get_vname(backend->list, aclobj->name);
849 aclobj->rights_pool, &aclobj->rights);