Lines Matching defs:backend

40 	struct acl_backend *backend;
44 i_debug("acl: initializing backend with data: %s", data);
56 i_fatal("Unknown ACL backend: %s", t_strcut(data, ':'));
58 backend = acl_backend_vfile.alloc();
59 backend->debug = user->mail_debug;
60 backend->v = acl_backend_vfile;
61 backend->list = list;
62 backend->username = p_strdup(backend->pool, acl_username);
63 backend->owner = owner;
64 backend->globals_only =
68 backend->group_count = group_count;
69 backend->groups =
70 p_new(backend->pool, const char *, group_count);
72 backend->groups[i] = p_strdup(backend->pool, groups[i]);
76 i_qsort(backend->groups, group_count, sizeof(const char *),
81 if (acl_backend_vfile.init(backend, data) < 0)
82 i_fatal("acl: backend vfile init failed with data: %s",
86 backend->default_rights = owner ? owner_mailbox_rights :
88 backend->default_aclmask =
89 acl_cache_mask_init(backend->cache, backend->pool,
90 backend->default_rights);
91 return backend;
96 struct acl_backend *backend = *_backend;
100 if (backend->default_aclobj != NULL)
101 acl_object_deinit(&backend->default_aclobj);
102 acl_cache_deinit(&backend->cache);
103 backend->v.deinit(backend);
106 const char *acl_backend_get_acl_username(struct acl_backend *backend)
108 return backend->username;
111 bool acl_backend_user_is_authenticated(struct acl_backend *backend)
113 return backend->username != NULL;
116 bool acl_backend_user_is_owner(struct acl_backend *backend)
118 return backend->owner;
121 bool acl_backend_user_name_equals(struct acl_backend *backend,
124 if (backend->username == NULL) {
129 return strcmp(backend->username, username) == 0;
132 bool acl_backend_user_is_in_group(struct acl_backend *backend,
135 return i_bsearch(group_name, backend->groups, backend->group_count,
139 bool acl_backend_rights_match_me(struct acl_backend *backend,
146 return acl_backend_user_is_authenticated(backend);
149 return acl_backend_user_is_in_group(backend, rights->identifier);
151 return acl_backend_user_name_equals(backend, rights->identifier);
153 return acl_backend_user_is_owner(backend);
160 unsigned int acl_backend_lookup_right(struct acl_backend *backend,
163 return acl_cache_right_lookup(backend->cache, right);
166 struct acl_object *acl_backend_get_default_object(struct acl_backend *backend)
168 struct mail_user *user = mailbox_list_get_user(backend->list);
169 struct mail_namespace *ns = mailbox_list_get_namespace(backend->list);
172 if (backend->default_aclobj != NULL)
173 return backend->default_aclobj;
180 backend->default_aclobj =
181 acl_object_init_from_name(backend, default_name);
182 return backend->default_aclobj;
185 int acl_backend_get_default_rights(struct acl_backend *backend,
188 struct acl_object *aclobj = acl_backend_get_default_object(backend);
190 if (backend->v.object_refresh_cache(aclobj) < 0)
193 *mask_r = acl_cache_get_my_rights(backend->cache, aclobj->name);
195 *mask_r = backend->default_aclmask;