daemon: request and update both username and secret in _request_credentials_update()
authorAlexander Kanavin <alex.kanavin@gmail.com>
Mon, 8 Jul 2013 16:46:06 +0000 (19:46 +0300)
committerAlexander Kanavin <alex.kanavin@gmail.com>
Mon, 8 Jul 2013 16:46:06 +0000 (19:46 +0300)
src/daemon/gsignond-identity.c

index 145b68c..7996bcb 100644 (file)
@@ -547,7 +547,7 @@ gsignond_identity_get_auth_session (GSignondIdentity *identity,
 }
 
 static void
-_on_query_dialog_done (GSignondSignonuiData *reply, GError *error, gpointer user_data)
+_on_credentials_updated (GSignondSignonuiData *reply, GError *error, gpointer user_data)
 {
     GSignondIdentity *identity = GSIGNOND_IDENTITY (user_data);
     guint32 id = 0;
@@ -555,7 +555,7 @@ _on_query_dialog_done (GSignondSignonuiData *reply, GError *error, gpointer user
     GSignondSignonuiError err_id = 0;
 
     if (error) {
-        WARN ("failed to verfiy user : %s", error->message);
+        WARN ("failed to verify user : %s", error->message);
         g_error_free (error);
 
         err = gsignond_get_gerror_for_id (GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED, "Operation cancled");
@@ -577,12 +577,14 @@ _on_query_dialog_done (GSignondSignonuiData *reply, GError *error, gpointer user
         }
     }
     else {
+        const gchar *username = gsignond_signonui_data_get_username (reply);
         const gchar *secret = gsignond_signonui_data_get_password (reply);
 
-        if (!secret) {
+        if (!secret || !username) {
             err = gsignond_get_gerror_for_id (GSIGNOND_ERROR_INTERNAL_SERVER,
                                 "Server internal error occured");
         } else if (identity->priv->info) {
+            gsignond_identity_info_set_username (identity->priv->info, username) ;
             gsignond_identity_info_set_secret (identity->priv->info, secret) ;
 
             /* Save new secret in db */
@@ -628,12 +630,13 @@ gsignond_identity_request_credentials_update (GSignondIdentity *identity,
     ui_data = gsignond_signonui_data_new ();
 
     gsignond_signonui_data_set_query_username (ui_data, TRUE);
+    gsignond_signonui_data_set_query_password (ui_data, TRUE);
     gsignond_signonui_data_set_username (ui_data, gsignond_identity_info_get_username (identity->priv->info));
     gsignond_signonui_data_set_caption (ui_data, gsignond_identity_info_get_caption (identity->priv->info));
     gsignond_signonui_data_set_message (ui_data, message);
   
     gsignond_daemon_show_dialog (GSIGNOND_DAEMON (identity->priv->owner), G_OBJECT(identity),
-        ui_data, _on_query_dialog_done, NULL, identity);
+        ui_data, _on_credentials_updated, NULL, identity);
 
     gsignond_signonui_data_unref (ui_data);
 
@@ -641,7 +644,7 @@ gsignond_identity_request_credentials_update (GSignondIdentity *identity,
 }
 
 static void
-_on_user_verfied (GSignondSignonuiData *reply, GError *error, gpointer user_data)
+_on_user_verified (GSignondSignonuiData *reply, GError *error, gpointer user_data)
 {
     GSignondIdentity *identity = GSIGNOND_IDENTITY (user_data);
     gboolean res = FALSE;
@@ -649,7 +652,7 @@ _on_user_verfied (GSignondSignonuiData *reply, GError *error, gpointer user_data
     GSignondSignonuiError err_id = 0;
 
     if (error) {
-        WARN ("failed to verfiy user : %s", error->message);
+        WARN ("failed to verify user : %s", error->message);
         g_error_free (error);
 
         err = gsignond_get_gerror_for_id (GSIGNOND_ERROR_IDENTITY_OPERATION_CANCELED, "Operation cancled");
@@ -728,7 +731,7 @@ gsignond_identity_verify_user (GSignondIdentity *identity,
     gsignond_signonui_data_set_caption (ui_data, gsignond_identity_info_get_caption (identity->priv->info));
    
     gsignond_daemon_show_dialog (GSIGNOND_DAEMON (identity->priv->owner), G_OBJECT (identity),
-        ui_data, _on_user_verfied, NULL, identity);
+        ui_data, _on_user_verified, NULL, identity);
 
     gsignond_signonui_data_unref (ui_data);