From 9886055a4a7e44ee5080fbcbae0b99eeb69ff2d2 Mon Sep 17 00:00:00 2001 From: Fabiano FidĂȘncio Date: Mon, 6 Oct 2014 13:58:04 +0200 Subject: Prefill the username in the authentication dialog Lets prefill the username entry using the user name of the current user. --- src/remote-viewer.c | 3 +++ src/virt-viewer-session-spice.c | 16 ++++++++++------ src/virt-viewer-session-vnc.c | 10 +++++++--- src/virt-viewer.c | 4 ++++ 4 files changed, 24 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 485baf2..112ef8b 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -714,6 +714,9 @@ authenticate_cb(RestProxy *proxy, G_GNUC_UNUSED RestProxyAuth *auth, "username", &username, NULL); + if (username == NULL || *username == '\0') + username = g_strdup(g_get_user_name()); + window = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(user_data)); success = virt_viewer_auth_collect_credentials(virt_viewer_window_get_window(window), "oVirt", diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index 0c841bf..c45795c 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -528,13 +528,17 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel G_GNUC_UNUSED error != NULL ? error->message : _("Invalid password")); self->priv->pass_try++; - /* A username is *only* pre-filled in case where some authentication - * error happened. Unfortunately, we don't have a clear way to - * differantiate between invalid username and invalid password. - * So, in both cases the username entry will be pre-filled with the - * username used in the previous attempt. */ - if (username_required) + /* The username is firstly pre-filled with the username of the current + * user and in case where some authentication error happened, the + * username entry will be prefilled with the last username used. + * Unfortunately, we don't have a clear way to differantiate bewteen + * invalid username and invalid password. So, in both cases the username + * entry will be pre-filled with the username used in the previous attempt. */ + if (username_required) { g_object_get(self->priv->session, "username", &user, NULL); + if (user == NULL || *user == '\0') + user = g_strdup(g_get_user_name()); + } ret = virt_viewer_auth_collect_credentials(self->priv->main_window, "SPICE", diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c index 29bd111..5a2dd86 100644 --- a/src/virt-viewer-session-vnc.c +++ b/src/virt-viewer-session-vnc.c @@ -283,9 +283,13 @@ virt_viewer_session_vnc_auth_credential(GtkWidget *src G_GNUC_UNUSED, VirtViewerFile *file = virt_viewer_session_get_file(VIRT_VIEWER_SESSION(self)); if (file != NULL) { - if (wantUsername && virt_viewer_file_is_set(file, "username")) { - username = virt_viewer_file_get_username(file); - wantUsername = FALSE; + if (wantUsername) { + if (virt_viewer_file_is_set(file, "username")) { + username = virt_viewer_file_get_username(file); + wantUsername = FALSE; + } else { + username = g_strdup(g_get_user_name()); + } } if (wantPassword && virt_viewer_file_is_set(file, "password")) { password = virt_viewer_file_get_password(file); diff --git a/src/virt-viewer.c b/src/virt-viewer.c index a1b3f0c..cbedc9f 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -711,6 +711,10 @@ virt_viewer_auth_libvirt_credentials(virConnectCredentialPtr cred, if (username || password) { VirtViewerWindow *vwin = virt_viewer_app_get_main_window(VIRT_VIEWER_APP(app)); GtkWindow *win = virt_viewer_window_get_window(vwin); + + if (*username == NULL || **username == '\0') + *username = g_strdup(g_get_user_name()); + priv->auth_cancelled = !virt_viewer_auth_collect_credentials(win, "libvirt", app->priv->uri, -- cgit