changeset 19718:8ad9d8dd0f70

acl: If acl_user is set, use it for ACL username checks. Overrides master_user.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 08 Feb 2016 12:04:02 +0200
parents d5d64a90df39
children f41c7db50a90
files src/plugins/acl/acl-mailbox-list.c src/plugins/acl/acl-plugin.h src/plugins/acl/acl-storage.c
diffstat 3 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/acl/acl-mailbox-list.c	Fri Feb 05 15:55:36 2016 +0200
+++ b/src/plugins/acl/acl-mailbox-list.c	Mon Feb 08 12:04:02 2016 +0200
@@ -509,7 +509,7 @@
 		return;
 
 	owner_username = ns->user->username;
-	current_username = auser->master_user;
+	current_username = auser->acl_user;
 	if (current_username == NULL)
 		current_username = owner_username;
 	else
--- a/src/plugins/acl/acl-plugin.h	Fri Feb 05 15:55:36 2016 +0200
+++ b/src/plugins/acl/acl-plugin.h	Mon Feb 08 12:04:02 2016 +0200
@@ -16,7 +16,7 @@
 struct acl_user {
 	union mail_user_module_context module_ctx;
 
-	const char *master_user;
+	const char *acl_user;
 	const char *acl_env;
 	const char *const *groups;
 
--- a/src/plugins/acl/acl-storage.c	Fri Feb 05 15:55:36 2016 +0200
+++ b/src/plugins/acl/acl-storage.c	Mon Feb 08 12:04:02 2016 +0200
@@ -35,7 +35,9 @@
 	auser->acl_lookup_dict = acl_lookup_dict_init(user);
 
 	auser->acl_env = env;
-	auser->master_user = mail_user_plugin_getenv(user, "master_user");
+	auser->acl_user = mail_user_plugin_getenv(user, "acl_user");
+	if (auser->acl_user == NULL)
+		auser->acl_user = mail_user_plugin_getenv(user, "master_user");
 
 	env = mail_user_plugin_getenv(user, "acl_groups");
 	if (env != NULL) {