]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Added mail_user->admin flag.
authorTimo Sirainen <tss@iki.fi>
Sun, 8 Dec 2013 19:22:38 +0000 (21:22 +0200)
committerTimo Sirainen <tss@iki.fi>
Sun, 8 Dec 2013 19:22:38 +0000 (21:22 +0200)
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
src/lib-storage/mail-user.h

index 36cb8b167eace7b7dff36061a5a3597d0cd31d6b..dea26f51b7d9fac85217fe88261fad9d3c2ef720 100644 (file)
@@ -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);
index fcc2162559dac39723164a1804860e3eaff7dab8..54cbb9163b777c735fb58bf1f45c5490bcd8074f 100644 (file)
@@ -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 {