]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
plugins: acl - Remove old acl_backend_init()
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 10 Nov 2023 13:25:49 +0000 (15:25 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:11 +0000 (12:34 +0200)
src/plugins/acl/acl-api-private.h
src/plugins/acl/acl-api.h
src/plugins/acl/acl-backend-vfile.c
src/plugins/acl/acl-backend.c

index 5166500634a7b7a92a7094451a17ba47d0988f37..1a6fb27d3d544a2a49be1576ce02d846a639207e 100644 (file)
@@ -8,7 +8,6 @@ struct acl_backend_vfuncs {
        const char *name;
        struct acl_backend *(*alloc)(void);
        int (*init)(struct acl_backend *backend, const char **error_r);
-       int (*init_legacy)(struct acl_backend *backend, const char *data);
        void (*deinit)(struct acl_backend *backend);
 
        struct acl_mailbox_list_context *
index ae13e6baa0e1bd5ae85243f7b8a2cfe100b7d5d0..60ecb06098fa80fd10d9ea875d2a9a25c6d5186d 100644 (file)
@@ -9,18 +9,11 @@ struct mailbox_list;
 struct mail_storage;
 struct mailbox;
 struct acl_object;
-struct acl_settings;
+struct acl_backend;
 
 #define MAILBOX_ATTRIBUTE_PREFIX_ACL \
        MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT"acl/"
 
-/* data contains the information needed to initialize ACL backend. If username
-   is NULL, it means the user is anonymous. Username and groups are matched
-   case-sensitively. */
-struct acl_backend *
-acl_backend_init(const char *data, struct mailbox_list *list,
-                const char *acl_username, const struct acl_settings *set,
-                bool owner);
 int acl_backend_init_auto(struct mailbox_list *list, struct acl_backend **backend_r,
                          const char **error_r);
 void acl_backend_deinit(struct acl_backend **backend);
index 2524bc8461fa8a4d10dcf55cef6ccd2b4b0c586c..193928230fe6c336f6312aa47ee58f12c0ffc0d7 100644 (file)
@@ -57,60 +57,6 @@ acl_backend_vfile_init(struct acl_backend *_backend, const char **error_r)
        return 0;
 }
 
-static int
-acl_backend_vfile_init_legacy(struct acl_backend *_backend, const char *data)
-{
-       struct event *event = _backend->event;
-       struct acl_backend_vfile *backend =
-               container_of(_backend, struct acl_backend_vfile, backend);
-       struct stat st;
-       const char *value, *const *tmp;
-       const char *global_path;
-
-       tmp = t_strsplit(data, ":");
-       global_path = t_strdup_empty(*tmp);
-       backend->cache_secs = ACL_VFILE_DEFAULT_CACHE_SECS;
-
-       if (*tmp != NULL)
-               tmp++;
-       for (; *tmp != NULL; tmp++) {
-               if (str_begins(*tmp, "cache_secs=", &value)) {
-                       if (str_to_uint(value, &backend->cache_secs) < 0) {
-                               e_error(event,
-                                       "acl vfile: Invalid cache_secs value: %s",
-                                       *tmp + 11);
-                               return -1;
-                       }
-               } else {
-                       e_error(event, "acl vfile: Unknown parameter: %s", *tmp);
-                       return -1;
-               }
-       }
-       if (global_path != NULL) {
-               if (stat(global_path, &st) < 0) {
-                       e_error(event,
-                               "acl vfile: stat(%s) failed: %m", global_path);
-                       return -1;
-               } else if (S_ISDIR(st.st_mode)) {
-                       e_error(event,
-                               "acl vfile: Global ACL directories are no longer supported");
-                       return -1;
-               } else {
-                       _backend->global_file = acl_global_file_init(
-                               global_path, backend->cache_secs, event);
-               }
-       }
-       if (_backend->global_file == NULL)
-               e_debug(event, "acl vfile: Global ACLs disabled");
-       else
-               e_debug(event, "acl vfile: Global ACL file: %s", global_path);
-
-       _backend->cache =
-               acl_cache_init(_backend,
-                              sizeof(struct acl_backend_vfile_validity));
-       return 0;
-}
-
 static void acl_backend_vfile_deinit(struct acl_backend *_backend)
 {
        struct acl_backend_vfile *backend =
@@ -594,7 +540,6 @@ const struct acl_backend_vfuncs acl_backend_vfile = {
        .name = "vfile",
        .alloc = acl_backend_vfile_alloc,
        .init = acl_backend_vfile_init,
-       .init_legacy = acl_backend_vfile_init_legacy,
        .deinit = acl_backend_vfile_deinit,
        .nonowner_lookups_iter_init = acl_backend_vfile_nonowner_iter_init,
        .nonowner_lookups_iter_next = acl_backend_vfile_nonowner_iter_next,
index eff5628e75f014301b384a7acfe928b85d7711b8..1ab639e83c07a06827122cc9b1e18dc0c69ec13a 100644 (file)
@@ -110,62 +110,6 @@ int acl_backend_init_auto(struct mailbox_list *list, struct acl_backend **backen
        return 1;
 }
 
-struct acl_backend *
-acl_backend_init(const char *data, struct mailbox_list *list,
-                const char *acl_username, const struct acl_settings *set,
-                bool owner)
-{
-       struct mail_user *user = mailbox_list_get_user(list);
-       struct acl_backend_entry *be;
-       struct acl_backend *backend;
-       const char *be_name;
-
-       e_debug(user->event, "acl: initializing backend with data: %s", data);
-       e_debug(user->event, "acl: acl username = %s", acl_username);
-       e_debug(user->event, "acl: owner = %d", owner ? 1 : 0);
-
-       be_name = strchr(data, ':');
-       if (be_name == NULL)
-               be_name = data;
-       else {
-               be_name = t_strdup_until(data, be_name);
-               data = be_name++;
-       }
-
-       be = acl_backend_find(be_name);
-
-       backend = be->v->alloc();
-       backend->event = event_create(user->event);
-       event_add_category(backend->event, &event_category_acl);
-
-       backend->v = be->v;
-       backend->list = list;
-       backend->username = p_strdup(backend->pool, acl_username);
-       backend->owner = owner;
-
-       if (event_want_debug(user->event) && array_is_created(&set->acl_groups)) {
-               const char *group;
-               array_foreach_elem(&set->acl_groups, group) {
-                       e_debug(user->event, "acl: group added: %s", group);
-               }
-       }
-
-       backend->set = set;
-
-       T_BEGIN {
-               if (backend->v->init_legacy(backend, data) < 0)
-                       i_fatal("acl: backend %s init failed with data: %s",
-                               backend->v->name, data);
-       } T_END;
-
-       backend->default_rights = owner ? owner_mailbox_rights :
-               non_owner_mailbox_rights;
-       backend->default_aclmask =
-               acl_cache_mask_init(backend->cache, backend->pool,
-                                   backend->default_rights);
-       return backend;
-}
-
 void acl_backend_deinit(struct acl_backend **_backend)
 {
        struct acl_backend *backend = *_backend;