changeset 14566:ca0fef559d43

login: If user is disabled or password expired, say it in logout reason.
author Timo Sirainen <tss@iki.fi>
date Wed, 16 May 2012 16:14:31 +0300
parents d6f06ce44b0b
children 6d11513cdd0d
files src/login-common/client-common-auth.c src/login-common/client-common.c src/login-common/client-common.h
diffstat 3 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/login-common/client-common-auth.c	Wed May 16 16:14:01 2012 +0300
+++ b/src/login-common/client-common-auth.c	Wed May 16 16:14:31 2012 +0300
@@ -82,6 +82,10 @@
 			reply_r->temp = TRUE;
 		else if (strcmp(key, "authz") == 0)
 			reply_r->authz_failure = TRUE;
+		else if (strcmp(key, "user_disabled") == 0)
+			client->auth_user_disabled = TRUE;
+		else if (strcmp(key, "pass_expired") == 0)
+			client->auth_pass_expired = TRUE;
 		else if (strcmp(key, "reason") == 0)
 			reply_r->reason = value;
 		else if (strcmp(key, "host") == 0)
--- a/src/login-common/client-common.c	Wed May 16 16:14:01 2012 +0300
+++ b/src/login-common/client-common.c	Wed May 16 16:14:31 2012 +0300
@@ -645,6 +645,10 @@
 		return t_strdup_printf("(internal failure, %u succesful auths)",
 				       client->auth_successes);
 	}
+	if (client->auth_user_disabled)
+		return "(user disabled)";
+	if (client->auth_pass_expired)
+		return "(password expired)";
 	return t_strdup_printf("(auth failed, %u attempts in %u secs)",
 			       client->auth_attempts, auth_secs);
 }
--- a/src/login-common/client-common.h	Wed May 16 16:14:01 2012 +0300
+++ b/src/login-common/client-common.h	Wed May 16 16:14:31 2012 +0300
@@ -139,6 +139,8 @@
 	unsigned int auth_process_comm_fail:1;
 	unsigned int proxy_auth_failed:1;
 	unsigned int auth_waiting:1;
+	unsigned int auth_user_disabled:1;
+	unsigned int auth_pass_expired:1;
 	/* ... */
 };