gboolean goa_utils_delete_credentials_sync (GoaProvider *provider, GoaAccount *object, GCancellable *cancellable, GError **error) { gboolean ret; gchar *password_key; const gchar *id; GError *sec_error = NULL; g_return_val_if_fail (GOA_IS_PROVIDER (provider), FALSE); g_return_val_if_fail (GOA_IS_ACCOUNT (object), FALSE); g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); ret = FALSE; password_key = NULL; id = goa_account_get_id (object); password_key = g_strdup_printf ("%s:gen%d:%s", goa_provider_get_provider_type (GOA_PROVIDER (provider)), goa_provider_get_credentials_generation (GOA_PROVIDER (provider)), id); secret_password_clear_sync (&secret_password_schema, cancellable, &sec_error, "goa-identity", password_key, NULL); if (sec_error != NULL) { g_warning ("secret_password_clear_sync() failed: %s", sec_error->message); g_set_error_literal (error, GOA_ERROR, GOA_ERROR_FAILED, /* TODO: more specific */ _("Failed to delete credentials from the keyring")); g_error_free (sec_error); goto out; } g_debug ("Cleared keyring credentials for id: %s", id); ret = TRUE; out: g_free (password_key); return ret; }
static void gfbgraph_goa_authorizer_set_goa_object (GFBGraphGoaAuthorizer *self, GoaObject *goa_object) { GoaAccount *account; GoaOAuth2Based *oauth2_based; GFBGraphGoaAuthorizerPrivate *priv; g_return_if_fail (GOA_IS_OBJECT (goa_object)); priv = GFBGRAPH_GOA_AUTHORIZER_GET_PRIVATE (self); oauth2_based = goa_object_peek_oauth2_based (goa_object); g_return_if_fail (oauth2_based != NULL && GOA_IS_OAUTH2_BASED (oauth2_based)); account = goa_object_peek_account (goa_object); g_return_if_fail (account != NULL && GOA_IS_ACCOUNT (account)); g_object_ref (goa_object); priv->goa_object = goa_object; }
void biji_note_book_add_goa_object (BijiNoteBook *self, GoaObject *object) { BijiProvider *provider; GoaAccount *account; const gchar *type; provider = NULL; account = goa_object_get_account (object); if (GOA_IS_ACCOUNT (account)) { type = goa_account_get_provider_type (account); if (g_strcmp0 (type, "owncloud") ==0) provider = biji_own_cloud_provider_new (self, object); } _add_provider (self, provider); }