summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabiano FidĂȘncio <fidencio@redhat.com>2014-10-06 13:58:04 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2014-10-10 12:57:08 +0200
commit9886055a4a7e44ee5080fbcbae0b99eeb69ff2d2 (patch)
treef9ae905c7359b26d5a292ab12d63e1d48a528b9c
parent69b3096f51bf2b6e9d1606b9fd49499899886ac7 (diff)
downloadvirt-viewer-9886055a4a7e44ee5080fbcbae0b99eeb69ff2d2.tar.gz
virt-viewer-9886055a4a7e44ee5080fbcbae0b99eeb69ff2d2.tar.xz
virt-viewer-9886055a4a7e44ee5080fbcbae0b99eeb69ff2d2.zip
Prefill the username in the authentication dialog
Lets prefill the username entry using the user name of the current user.
-rw-r--r--src/remote-viewer.c3
-rw-r--r--src/virt-viewer-session-spice.c16
-rw-r--r--src/virt-viewer-session-vnc.c10
-rw-r--r--src/virt-viewer.c4
4 files changed, 24 insertions, 9 deletions
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,