aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-uoa-auth-handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-uoa-auth-handler.c')
-rw-r--r--libempathy/empathy-uoa-auth-handler.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/libempathy/empathy-uoa-auth-handler.c b/libempathy/empathy-uoa-auth-handler.c
index 16d664fb6..4b85fca00 100644
--- a/libempathy/empathy-uoa-auth-handler.c
+++ b/libempathy/empathy-uoa-auth-handler.c
@@ -171,8 +171,8 @@ auth_cb (GObject *source,
DEBUG ("SASL Mechanism error: %s", error->message);
g_clear_error (&error);
- /* Inform SSO that the access token didn't work and it should ask user
- * to re-grant access. */
+ /* Inform SSO that the access token (or password) didn't work and it should
+ * ask user to re-grant access (or retype password). */
extra_params = tp_asv_new (
SIGNON_SESSION_DATA_UI_POLICY, G_TYPE_INT,
SIGNON_POLICY_REQUEST_PASSWORD,
@@ -235,6 +235,12 @@ session_process_cb (SignonAuthSession *session,
auth_cb, ctx);
break;
+ case EMPATHY_SASL_MECHANISM_PASSWORD:
+ empathy_sasl_auth_password_async (ctx->channel,
+ tp_asv_get_string (session_data, "Secret"),
+ auth_cb, ctx);
+ break;
+
default:
g_assert_not_reached ();
}
@@ -338,5 +344,6 @@ empathy_uoa_auth_handler_supports (EmpathyUoaAuthHandler *self,
mech = empathy_sasl_channel_select_mechanism (channel);
return mech == EMPATHY_SASL_MECHANISM_FACEBOOK ||
mech == EMPATHY_SASL_MECHANISM_WLM ||
- mech == EMPATHY_SASL_MECHANISM_GOOGLE;
+ mech == EMPATHY_SASL_MECHANISM_GOOGLE ||
+ mech == EMPATHY_SASL_MECHANISM_PASSWORD;
}