[evolution-data-server] [OAuth2 Prompter] Show also current URL in the credentials prompt dialog
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] [OAuth2 Prompter] Show also current URL in the credentials prompt dialog
- Date: Fri, 1 Mar 2019 15:00:00 +0000 (UTC)
commit df0a219cc2c84db043fe6cf071ec06b29414f484
Author: Milan Crha <mcrha redhat com>
Date: Fri Mar 1 15:58:52 2019 +0100
[OAuth2 Prompter] Show also current URL in the credentials prompt dialog
That way the users can verify that they talk to the expected server
when providing their credentials to the web site.
.../e-credentials-prompter-impl-oauth2.c | 68 +++++++++++++++++++++-
1 file changed, 66 insertions(+), 2 deletions(-)
---
diff --git a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
index 7babc4b50..6f007f43c 100644
--- a/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
+++ b/src/libedataserverui/e-credentials-prompter-impl-oauth2.c
@@ -566,7 +566,9 @@ static gboolean
e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *prompter_oauth2)
{
#ifdef ENABLE_OAUTH2
- GtkWidget *dialog, *content_area, *widget, *progress_bar, *vbox;
+ GtkWidget *dialog, *content_area, *widget, *progress_bar, *vbox, *hbox, *url_entry;
+ GtkStyleContext *style_context;
+ GtkCssProvider *css_provider;
GtkGrid *grid;
GtkScrolledWindow *scrolled_window;
GtkWindow *dialog_parent;
@@ -576,6 +578,7 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
GString *info_markup;
gint row = 0;
gboolean success;
+ GError *error = NULL;
g_return_val_if_fail (E_IS_CREDENTIALS_PROMPTER_IMPL_OAUTH2 (prompter_oauth2), FALSE);
g_return_val_if_fail (prompter_oauth2->priv->prompt_id != NULL, FALSE);
@@ -603,13 +606,30 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
NULL);
gtk_window_set_default_size (GTK_WINDOW (dialog), 320, 480);
+ gtk_widget_set_name (dialog, "oauth2-prompt");
+
+ css_provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (css_provider,
+ "#oauth2-prompt { -GtkDialog-action-area-border:0px; -GtkDialog-content-area-border:0px; }",
+ -1, &error);
+ style_context = gtk_widget_get_style_context (dialog);
+ if (error == NULL) {
+ gtk_style_context_add_provider (
+ style_context,
+ GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ } else {
+ g_warning ("%s: %s", G_STRFUNC, error->message);
+ g_clear_error (&error);
+ }
+ g_object_unref (css_provider);
prompter_oauth2->priv->dialog = GTK_DIALOG (dialog);
gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
if (dialog_parent)
gtk_window_set_transient_for (GTK_WINDOW (dialog), dialog_parent);
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ON_PARENT);
- gtk_container_set_border_width (GTK_CONTAINER (dialog), 12);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
content_area = gtk_dialog_get_content_area (prompter_oauth2->priv->dialog);
@@ -652,6 +672,40 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
gtk_grid_attach (grid, vbox, 0, row, 1, 1);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
+
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ widget = gtk_label_new (_("URL:"));
+ g_object_set (
+ G_OBJECT (widget),
+ "hexpand", FALSE,
+ "vexpand", FALSE,
+ "halign", GTK_ALIGN_START,
+ "valign", GTK_ALIGN_CENTER,
+ "xalign", 0.0,
+ NULL);
+
+ gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+
+ url_entry = gtk_entry_new ();
+ g_object_set (
+ G_OBJECT (url_entry),
+ "can-default", FALSE,
+ "can-focus", FALSE,
+ "hexpand", TRUE,
+ "vexpand", FALSE,
+ "halign", GTK_ALIGN_FILL,
+ "valign", GTK_ALIGN_CENTER,
+ "editable", FALSE,
+ NULL);
+
+ style_context = gtk_widget_get_style_context (url_entry);
+ gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_LABEL);
+ gtk_style_context_set_state (style_context, GTK_STATE_FLAG_INSENSITIVE);
+
+ gtk_box_pack_start (GTK_BOX (hbox), url_entry, TRUE, TRUE, 2);
+
widget = gtk_scrolled_window_new (NULL, NULL);
g_object_set (
G_OBJECT (widget),
@@ -692,6 +746,16 @@ e_credentials_prompter_impl_oauth2_show_dialog (ECredentialsPrompterImplOAuth2 *
prompter_oauth2->priv->web_view = WEBKIT_WEB_VIEW (widget);
+ e_binding_bind_property (
+ prompter_oauth2->priv->web_view, "uri",
+ url_entry, "text",
+ G_BINDING_DEFAULT);
+
+ e_binding_bind_property (
+ prompter_oauth2->priv->web_view, "uri",
+ url_entry, "tooltip-text",
+ G_BINDING_DEFAULT);
+
progress_bar = gtk_progress_bar_new ();
g_object_set (
G_OBJECT (progress_bar),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]