#include "lib.h"
#include "array.h"
#include "str.h"
+/* <settings checks> */
#include "strescape.h"
+/* </settings checks> */
#include "acl-api-private.h"
+/* <settings checks> */
const struct acl_letter_map acl_letter_map[] = {
{ 'l', MAIL_ACL_LOOKUP },
{ 'r', MAIL_ACL_READ },
static_assert(N_ELEMENTS(acl_letter_map) == N_ELEMENTS(all_mailbox_rights),
"acl_letter_map size differs from all_mailbox_rights");
+/* </settings checks> */
+
void acl_rights_write_id(string_t *dest, const struct acl_rights *right)
{
switch (right->id_type) {
return str_c(str);
}
+/* <settings checks> */
int acl_rights_parse_line(const char *line, pool_t pool,
struct acl_rights *rights_r, const char **error_r)
{
rights_r->identifier = p_strdup(pool, rights_r->identifier);
return 0;
}
+/* </settings checks> */
void acl_rights_dup(const struct acl_rights *src,
pool_t pool, struct acl_rights *dest_r)
return FALSE;
}
+/* <settings checks> */
int acl_identifier_parse(const char *line, struct acl_rights *rights)
{
if (str_begins(line, ACL_ID_NAME_USER_PREFIX, &rights->identifier)) {
return acl_right_names_alloc(pool, &rights, FALSE);
}
+/* </settings checks> */
void acl_right_names_write(string_t *dest, const char *const *rights)
{
#ifndef ACL_RIGHTS_H
#define ACL_RIGHTS_H
+/* <settings checks> */
+
/* Show mailbox in mailbox list. Allow subscribing to it. */
#define MAIL_ACL_LOOKUP "lookup"
/* Allow opening mailbox for reading */
};
ARRAY_DEFINE_TYPE(acl_rights, struct acl_rights);
+/* </settings checks> */
+
struct acl_rights_update {
/* Holder for rights */
struct acl_rights rights;
right. */
bool acl_rights_has_nonowner_lookup_changes(const struct acl_rights *rights);
+/* <settings checks> */
/* Parses identifier from line */
int acl_identifier_parse(const char *line, struct acl_rights *rights);
+/* </settings checks> */
int acl_rights_update_import(struct acl_rights_update *update,
const char *id, const char *const *rights,
/* Exports ACL rights to string */
const char *acl_rights_export(const struct acl_rights *rights);
+/* <settings checks> */
/* Parses line containing identifier and rights */
int acl_rights_parse_line(const char *line, pool_t pool,
struct acl_rights *rights_r, const char **error_r);
+/* </settings checks> */
/* Duplicates a right */
void acl_rights_dup(const struct acl_rights *src,
/* Comparison for rights */
int acl_rights_cmp(const struct acl_rights *r1, const struct acl_rights *r2);
+/* <settings checks> */
/* Parses acl letter string to names */
const char *const *
acl_right_names_parse(pool_t pool, const char *acl, const char **error_r);
+/* </settings checks> */
/* Writes acl names to destination string as acl letters */
void acl_right_names_write(string_t *dest, const char *const *rights);
/* <settings checks> */
static bool acl_rights_settings_check(void *_set, pool_t pool, const char **error_r)
{
-#ifdef CONFIG_BINARY
- /* FIXME: validate syntax */
- return TRUE;
-#else
struct acl_rights_settings *set = _set;
const char *const *right_names;
const char *id_str = set->id;
set->parsed->rights = right_names;
}
return TRUE;
-#endif
}
static bool acl_settings_check(void *_set ATTR_UNUSED, pool_t pool ATTR_UNUSED,