]> git.0d.be Git - empathy.git/commitdiff
UOA auth: handle the password mechanism as well
authorXavier Claessens <xavier.claessens@collabora.co.uk>
Thu, 23 Aug 2012 13:03:51 +0000 (15:03 +0200)
committerXavier Claessens <xavier.claessens@collabora.co.uk>
Mon, 27 Aug 2012 13:47:22 +0000 (15:47 +0200)
Since password is stored in SSO now, we can use the same code path
than other accounts.

https://bugzilla.gnome.org/show_bug.cgi?id=680776

libempathy/empathy-uoa-auth-handler.c

index 16d664fb6ec9881e33dfe75a5222d36e52587ff4..4b85fca000a7666c6d4b06b68ec5409c07a7a05a 100644 (file)
@@ -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;
 }