[seahorse: 4/5] gkr: Fix problem where keyring items overwrite one another



commit 0c64651c23437f140307046f302628ba63542561
Author: Stef Walter <stefw gnome org>
Date:   Thu Oct 18 21:06:38 2012 +0200

    gkr: Fix problem where keyring items overwrite one another
    
    Regression since the migration to libsecret. Items stored
    manually by choosing 'Stored Password' overwrite one another.
    Don't use secret_service_store() as it uses the
    SECRET_ITEM_CREATE_REOPLACE flag.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=686407

 gkr/seahorse-gkr-add-item.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/gkr/seahorse-gkr-add-item.c b/gkr/seahorse-gkr-add-item.c
index 97c9b24..cbde94e 100644
--- a/gkr/seahorse-gkr-add-item.c
+++ b/gkr/seahorse-gkr-add-item.c
@@ -46,14 +46,16 @@ on_item_stored (GObject *source,
 {
 	SeahorseWidget *swidget = SEAHORSE_WIDGET (user_data);
 	GError *error = NULL;
+	SecretItem *item;
 
 	/* Clear the operation without cancelling it since it is complete */
 	seahorse_gkr_dialog_complete_request (swidget, FALSE);
 
-	secret_service_store_finish (SECRET_SERVICE (source), result, &error);
+	item = secret_item_create_finish (result, &error);
 
-	/* Successful. Update the listings and stuff. */
-	if (error != NULL) {
+	if (error == NULL) {
+		g_object_unref (item);
+	} else {
 		seahorse_util_handle_error (&error, seahorse_widget_get_toplevel (swidget),
 		                            _("Couldn't add item"));
 	}
@@ -114,11 +116,9 @@ on_add_item_response (GtkDialog *dialog,
 
 		cancellable = seahorse_gkr_dialog_begin_request (swidget);
 		attributes = g_hash_table_new (g_str_hash, g_str_equal);
-		secret_service_store (secret_collection_get_service (collection),
-		                      SECRET_SCHEMA_NOTE, attributes,
-		                      g_dbus_proxy_get_object_path (G_DBUS_PROXY (collection)),
-		                      label, secret, cancellable, on_item_stored,
-		                      g_object_ref (swidget));
+		secret_item_create (collection, SECRET_SCHEMA_NOTE, attributes,
+		                    label, secret, SECRET_ITEM_CREATE_NONE,
+		                    cancellable, on_item_stored, g_object_ref (swidget));
 		g_hash_table_unref (attributes);
 		g_object_unref (cancellable);
 



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