GNOME Bugzilla – Bug 661640
Can't update the password of a Google account added with gnome-online-accounts
Last modified: 2011-11-24 11:20:18 UTC
Created attachment 198917 [details] I can't update my account from empathy I linked my Google Account to Gnome shell (gnome-online-accounts), my password is not stored by gnome-online-accounts. When I want to chat with empathy, it requires me to provide my password for this account in a small dialog box. I changed my google account password, empathy can't reconnect because the stored password is erroneous. Empathy suggests me to update my password in the Accounts management panel, but I can't manage this account from Empathy, nor update my password.
Right that's a nasty side effect of Empathy not being able to use the auth token from GOA.
I think the right answer for this problem is to display a dialog offering to enter a new password when we get a Authentication_Failed error.
Created attachment 200507 [details] [review] password-dialog: use self->priv pattern
Created attachment 200508 [details] [review] Abstract EmpathyPasswordDialog to EmpathyBasePasswordDialog I'm going to implement a slidely different version of this dialog so best to re-use as much code as possible.
Created attachment 200509 [details] [review] server-sasl-handler: add auth-password-failed signal
Created attachment 200510 [details] [review] auth-factory: relay the auth-password-failed signal
Created attachment 200511 [details] [review] add empathy-bad-password-dialog
Created attachment 200512 [details] [review] Allow user to try another password if auth failed
Created attachment 201157 [details] [review] Allow user to try another password if auth failed
Review of attachment 200507 [details] [review]: ++
Review of attachment 200508 [details] [review]: ++
Review of attachment 200509 [details] [review]: ++
Review of attachment 200510 [details] [review]: ++
Review of attachment 200511 [details] [review]: ::: libempathy-gtk/empathy-bad-password-dialog.c @@ +89,3 @@ + +static void +empathy_bad_password_dialog_dispose (GObject *object) Technically things that aren't object refs belong in finalize(). @@ +129,3 @@ + + text = g_strdup_printf (_("Authentification failed for account\n<b>%s</b>"), + tp_account_get_display_name (base->account)); Sceptical of this \n, how does it get translated for languages where the account name wouldn't be last? @@ +184,3 @@ + const gchar *password) +{ + g_assert (TP_IS_ACCOUNT (account)); I think this should be g_return_val_if_fail()
Review of attachment 201157 [details] [review]: ++
Review of attachment 200511 [details] [review]: ::: libempathy-gtk/empathy-bad-password-dialog.c @@ +89,3 @@ + +static void +empathy_bad_password_dialog_dispose (GObject *object) changed. @@ +129,3 @@ + + text = g_strdup_printf (_("Authentification failed for account\n<b>%s</b>"), + tp_account_get_display_name (base->account)); good point; I removed it. @@ +184,3 @@ + const gchar *password) +{ + g_assert (TP_IS_ACCOUNT (account)); changed.
Created attachment 201993 [details] [review] add empathy-bad-password-dialog
++
Attachment 200507 [details] pushed as adca8bd - password-dialog: use self->priv pattern Attachment 200508 [details] pushed as 80ff667 - Abstract EmpathyPasswordDialog to EmpathyBasePasswordDialog Attachment 200509 [details] pushed as e2df01b - server-sasl-handler: add auth-password-failed signal Attachment 200510 [details] pushed as e981a10 - auth-factory: relay the auth-password-failed signal Attachment 201157 [details] pushed as 9389308 - Allow user to try another password if auth failed Attachment 201993 [details] pushed as 7f75f25 - add empathy-bad-password-dialog