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: pgp0viq6ghaJD.pgp
Description: PGP signature

_______________________________________________
balsa-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/balsa-list

Reply via email to