raw_ns_set.location = "/tmp";
raw_ns = mail_namespaces_init_empty(raw_mail_user);
- raw_ns->flags |= NAMESPACE_FLAG_INTERNAL;
+ raw_ns->flags |= NAMESPACE_FLAG_NOQUOTA | NAMESPACE_FLAG_NOACL;
raw_ns->set = &raw_ns_set;
if (mail_storage_create(raw_ns, "raw", 0, &errstr) < 0)
i_fatal("Couldn't create internal raw storage: %s", errstr);
if (ns->type == NAMESPACE_SHARED && strchr(ns->prefix, '%') != NULL) {
/* dynamic shared namespace */
- ns->flags |= NAMESPACE_FLAG_INTERNAL;
+ ns->flags |= NAMESPACE_FLAG_NOQUOTA | NAMESPACE_FLAG_NOACL;
driver = "shared";
} else {
driver = NULL;
/* Namespace uses its own subscriptions. */
NAMESPACE_FLAG_SUBSCRIPTIONS = 0x10,
- /* Namespace is created for internal use only. */
- NAMESPACE_FLAG_INTERNAL = 0x1000,
/* Namespace was created automatically (for shared mailboxes) */
- NAMESPACE_FLAG_AUTOCREATED = 0x2000,
+ NAMESPACE_FLAG_AUTOCREATED = 0x1000,
/* Namespace has at least some usable mailboxes. Autocreated namespaces
that don't have usable mailboxes may be removed automatically. */
- NAMESPACE_FLAG_USABLE = 0x4000,
+ NAMESPACE_FLAG_USABLE = 0x2000,
/* Automatically created namespace for a user that doesn't exist. */
- NAMESPACE_FLAG_UNUSABLE = 0x8000
+ NAMESPACE_FLAG_UNUSABLE = 0x4000,
+ /* Don't track quota for this namespace */
+ NAMESPACE_FLAG_NOQUOTA = 0x8000,
+ /* Don't enforce ACLs for this namespace */
+ NAMESPACE_FLAG_NOACL = 0x10000
};
struct mail_namespace {
raw_ns_set.location = "/tmp";
raw_ns = mail_namespaces_init_empty(client->raw_mail_user);
- raw_ns->flags |= NAMESPACE_FLAG_INTERNAL;
+ raw_ns->flags |= NAMESPACE_FLAG_NOQUOTA | NAMESPACE_FLAG_NOACL;
raw_ns->set = &raw_ns_set;
if (mail_storage_create(raw_ns, "raw", 0, &error) < 0)
i_fatal("Couldn't create internal raw storage: %s", error);
string_t *id;
int ret, ret2 = 0;
- if ((ns->flags & NAMESPACE_FLAG_INTERNAL) != 0 || ns->owner == NULL)
+ if ((ns->flags & NAMESPACE_FLAG_NOACL) != 0 || ns->owner == NULL)
return 0;
id = t_str_new(128);
if (auser == NULL) {
/* ACLs disabled for this user */
- } else if ((list->ns->flags & NAMESPACE_FLAG_INTERNAL) != 0) {
+ } else if ((list->ns->flags & NAMESPACE_FLAG_NOACL) != 0) {
/* no ACL checks for internal namespaces (lda, shared) */
if (list->ns->type == NAMESPACE_SHARED)
acl_mailbox_list_init_shared(list);
if (auser == NULL) {
/* ACLs disabled for this user */
- } else if ((storage->ns->flags & NAMESPACE_FLAG_INTERNAL) != 0) {
+ } else if ((storage->ns->flags & NAMESPACE_FLAG_NOACL) != 0) {
/* no ACL checks for internal namespaces (lda) */
} else {
astorage = p_new(storage->pool, struct acl_mail_storage, 1);
p = t_strsplit_spaces(luser->env, " ");
for (i = 0; i < LAZY_NAMESPACE_COUNT; i++, p++) {
if (strcmp(storage->ns->prefix, *p) == 0) {
- storage->ns->flags |= NAMESPACE_FLAG_INTERNAL;
+ storage->ns->flags |= NAMESPACE_FLAG_NOQUOTA;
break;
}
}
struct quota_root *root;
bool add;
- if ((list->ns->flags & NAMESPACE_FLAG_INTERNAL) != 0)
+ if ((list->ns->flags & NAMESPACE_FLAG_NOQUOTA) != 0)
add = FALSE;
else if (list->ns->owner == NULL) {
/* see if we have a quota explicitly defined for