aboutsummaryrefslogtreecommitdiffstats
path: root/smime/gui/certificate-manager.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2004-05-01 05:04:15 +0800
committerChris Toshok <toshok@src.gnome.org>2004-05-01 05:04:15 +0800
commit343d0d815a4b59c13316e7125ef392be7ccdefcb (patch)
tree118be876a19402602d108772a0324c869a9efe56 /smime/gui/certificate-manager.c
parent5135f65c83b0256b275a4166c3dbfbe4315509b7 (diff)
downloadgsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.gz
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.bz2
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.lz
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.xz
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.zst
gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.zip
[ fixes bug #52724 ]
2004-04-30 Chris Toshok <toshok@ximian.com> [ fixes bug #52724 ] * gui/ca-trust-dialog.c (ca_trust_dialog_set_trust): new function, set the toggle buttons' states. * gui/ca-trust-dialog.h (ca_trust_dialog_set_trust): add prototype. * gui/certificate-manager.c (edit_ca): flesh out the rest of the editing here. set the existing trust levels and get them back from the dialog when OK is clicked (and store them to the cert db.) svn path=/trunk/; revision=25726
Diffstat (limited to 'smime/gui/certificate-manager.c')
-rw-r--r--smime/gui/certificate-manager.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c
index a59f8a0d96..f291fffea4 100644
--- a/smime/gui/certificate-manager.c
+++ b/smime/gui/certificate-manager.c
@@ -487,10 +487,29 @@ edit_ca (GtkWidget *widget, CertificateManagerData *cfm)
if (cert) {
GtkWidget *dialog = ca_trust_dialog_show (cert, FALSE);
-
- gtk_dialog_run (GTK_DIALOG (dialog));
-
- /* XXX more stuff here surely */
+ CERTCertificate *icert = e_cert_get_internal_cert (cert);
+
+ ca_trust_dialog_set_trust (dialog,
+ e_cert_trust_has_trusted_ca (icert->trust, TRUE, FALSE, FALSE),
+ e_cert_trust_has_trusted_ca (icert->trust, FALSE, TRUE, FALSE),
+ e_cert_trust_has_trusted_ca (icert->trust, FALSE, FALSE, TRUE));
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
+ gboolean trust_ssl, trust_email, trust_objsign;
+ CERTCertTrust trust;
+
+ ca_trust_dialog_get_trust (dialog,
+ &trust_ssl, &trust_email, &trust_objsign);
+
+ e_cert_trust_init (&trust);
+ e_cert_trust_set_valid_ca (&trust);
+ e_cert_trust_add_ca_trust (&trust,
+ trust_ssl,
+ trust_email,
+ trust_objsign);
+
+ CERT_ChangeCertTrust (e_cert_db_peek (), icert, &trust);
+ }
gtk_widget_destroy (dialog);
}