[Patch] password dialogue improvements



Hi all,

attached is a patch for cleaning up improving Balsa's password ui.

(1) If available, use the GCR password dialogue.
(2) Implement asking the user for a user certificates passphrase if required, using the same dialogue as the 
password dialogue.
(3) Clean up the LibBalsaServer signals (see [1]).  Regarding the "get-password" signal, the additional 
LibBalsaMailbox argument which was never used properly (passing the mailbox to config_mailbox_init() in 
src/save-restore.c, l. 422, sets the /third/ user_data argument of the callback which is never evaluated) is replaced 
by a string which is either empty for reading the user password, or contains the user certificate's subject for the 
passphrase of the latter.
(4) Simplify the user certificate passphrase callback from libnetclient by passing the certificate subject 
instead of the certificate binary data.
(5) Reading the password can be simplified due to the omitted (useless) LibBalsaMailbox argument.

Please note that the patch goes on top of the following pending patches:
* the “unified server configuration GUI” patch I submitted October 21st,
* Peter's fixes for building with LDAP support for this patch and
* the “Fix broken IMAP Kerberos authentication” patch I submitted October 23rd.

There are still some open points (e.g. user certificates for IMAP, clearing the passwords for auth failures, 
etc.) which I will address in a separate patch (soon, I hope).

As usual, any comment is highly welcome!

Cheers,
Albrecht.

[1] <https://mail.gnome.org/archives/balsa-list/2018-October/msg00010.html>

---
Patch details:
* libbalsa/imap-server.c, libbalsa/server-config.c, libinit_balsa/assistant_page_user.c, src/save-restore.c: 
use changed libbalsa_server_set_password() api
* libbalsa/libbalsa.[c]: implement GTK_DIALOG_USE_HEADER_BAR detection as boolean for GCR dialogue
* libbalsa/server.[ch]: clean up signal definitions (remove obsolete marshallers); remove unused class 
method; adjust api's for libbalsa_server_set_password(), libbalsa_server_get_password() and 
libbalsa_server_get_cert_pass()
* libnetclient/net-client.[ch]: pass cert subject only instead of full binary data in the passphrase signal
* src/balsa-app.[ch]: use GCR password dialogue if available; drop set_passwd_from_matching_server() which is 
never used

Attachment: passwd-dlg.diff.bz2
Description: application/bzip

Attachment: pgp0j4SqyIlxj.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]