acl-api-private.h revision 4c158400b046fefefce0194603951a6587f51867
#ifndef ACL_API_PRIVATE_H
#define ACL_API_PRIVATE_H
#include "acl-api.h"
#define ACL_ID_NAME_ANYONE "anyone"
#define ACL_ID_NAME_AUTHENTICATED "authenticated"
#define ACL_ID_NAME_OWNER "owner"
#define ACL_ID_NAME_USER_PREFIX "user="
#define ACL_ID_NAME_GROUP_PREFIX "group="
#define ACL_ID_NAME_GROUP_OVERRIDE_PREFIX "group-override="
struct acl_backend_vfuncs {
struct acl_backend *(*alloc)(void);
struct acl_mailbox_list_context *
const char **name_r);
void (*nonowner_lookups_iter_deinit)
(struct acl_mailbox_list_context *ctx);
const char *name);
const char *child_name);
const struct acl_rights_update *update);
struct acl_object_list_iter *
struct acl_rights *rights_r);
};
struct acl_backend {
const char *username;
const char **groups;
unsigned int group_count;
struct mailbox_list *list;
struct acl_global_file *global_file;
struct acl_object *default_aclobj;
struct acl_mask *default_aclmask;
const char *const *default_rights;
struct acl_backend_vfuncs v;
unsigned int owner:1;
unsigned int debug:1;
};
struct acl_mailbox_list_context {
struct acl_backend *backend;
};
struct acl_object {
struct acl_backend *backend;
char *name;
};
struct acl_object_list_iter {
struct acl_object *aclobj;
unsigned int idx;
unsigned int failed:1;
};
extern const char *const all_mailbox_rights[];
struct acl_object_list_iter *
struct acl_rights *rights_r);
const char *const *
const char **error_r);
const char *const *
const char *const *src, bool dup_strings);
const char *const **rightsp,
const char *const *modify_rights,
enum acl_modify_mode modify_mode);
#endif