static void prepare_create_prompt (GkdSecretCreate *self) { GkuPrompt *prompt; gchar *label; gchar *text; g_assert (GKD_SECRET_IS_CREATE (self)); g_assert (self->pkcs11_attrs); prompt = GKU_PROMPT (self); if (!gck_attributes_find_string (self->pkcs11_attrs, CKA_LABEL, &label)) label = g_strdup (_("Unnamed")); gku_prompt_reset (prompt, TRUE); gku_prompt_set_title (prompt, _("New Keyring Password")); gku_prompt_set_primary_text (prompt, _("Choose password for new keyring")); text = g_markup_printf_escaped (_("An application wants to create a new keyring called '%s'. " "Choose the password you want to use for it."), label); gku_prompt_set_secondary_text (prompt, text); g_free (text); gku_prompt_show_widget (prompt, "password_area"); gku_prompt_show_widget (prompt, "confirm_area"); g_free (label); }
static gboolean create_collection_with_secret (GkdSecretCreate *self, GkdSecretSecret *master) { DBusError derr = DBUS_ERROR_INIT; GkdSecretService *service; gchar *identifier; g_assert (GKD_SECRET_IS_CREATE (self)); g_assert (master); g_assert (!self->result_path); self->result_path = gkd_secret_create_with_secret (self->pkcs11_attrs, master, &derr); if (!self->result_path) { g_warning ("couldn't create new collection: %s", derr.message); dbus_error_free (&derr); return FALSE; } if (self->alias) { if (!gkd_secret_util_parse_path (self->result_path, &identifier, NULL)) g_assert_not_reached (); service = gkd_secret_prompt_get_service (GKD_SECRET_PROMPT (self)); gkd_secret_service_set_alias (service, self->alias, identifier); g_free (identifier); } return TRUE; }
static gboolean create_collection_with_secret (GkdSecretCreate *self, GkdSecretSecret *master) { GError *error = NULL; GkdSecretService *service; gchar *identifier; g_assert (GKD_SECRET_IS_CREATE (self)); g_assert (master); g_assert (!self->result_path); self->result_path = gkd_secret_create_with_secret (self->attributes, master, &error); if (!self->result_path) { g_warning ("couldn't create new collection: %s", error->message); g_error_free (error); return FALSE; } service = gkd_secret_prompt_get_service (GKD_SECRET_PROMPT (self)); if (self->alias) { if (!gkd_secret_util_parse_path (self->result_path, &identifier, NULL)) g_assert_not_reached (); gkd_secret_service_set_alias (service, self->alias, identifier); g_free (identifier); } /* Notify the callers that a collection was created */ gkd_secret_service_emit_collection_created (service, self->result_path); return TRUE; }