From 5a9912dcadfd467c5ea54bdc3331eef359f0b1c5 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 8 Dec 2013 21:22:38 +0200 Subject: [PATCH] lib-storage: Added mail_user->admin flag. The previous admin-flag used to mix up "admin user" and "admin tool", while this new purpose only means "admin user". --- src/lib-storage/mail-storage-service.c | 5 +++++ src/lib-storage/mail-user.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 36cb8b167e..dea26f51b7 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -83,6 +83,7 @@ struct mail_storage_service_user { struct setting_parser_context *set_parser; unsigned int anonymous:1; + unsigned int admin:1; }; struct module *mail_storage_service_modules = NULL; @@ -277,6 +278,9 @@ user_reply_handle(struct mail_storage_service_ctx *ctx, #endif } else if (strncmp(line, "auth_token=", 11) == 0) { user->auth_token = p_strdup(user->pool, line+11); + } else if (strncmp(line, "admin=", 6) == 0) { + user->admin = line[6] == 'y' || line[6] == 'Y' || + line[6] == '1'; } else T_BEGIN { ret = set_line(ctx, user, line); } T_END; @@ -621,6 +625,7 @@ mail_storage_service_init_post(struct mail_storage_service_ctx *ctx, mail_user->uid = priv->uid == (uid_t)-1 ? geteuid() : priv->uid; mail_user->gid = priv->gid == (gid_t)-1 ? getegid() : priv->gid; mail_user->anonymous = user->anonymous; + mail_user->admin = user->admin; mail_user->auth_token = p_strdup(mail_user->pool, user->auth_token); mail_set = mail_user_set_get_storage_set(mail_user); diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index fcc2162559..54cbb9163b 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -70,6 +70,8 @@ struct mail_user { unsigned int attr_dict_failed:1; /* We're deinitializing the user */ unsigned int deinitializing:1; + /* Enable administrator user commands for the user */ + unsigned int admin:1; }; struct mail_user_module_register { -- 2.47.3