[virt-tools-list] [virt-viewer: PATCH 3/3] Prefill the username in the authentication dialog

Christophe Fergeau cfergeau at redhat.com
Thu Oct 2 08:14:10 UTC 2014


Hey,

I did not test it but I'd say this looks good.

Christophe

On Wed, Oct 01, 2014 at 04:41:30PM +0200, Fabiano Fidêncio wrote:
> 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(-)
> 
> diff --git a/src/remote-viewer.c b/src/remote-viewer.c
> index 49981aa..164067d 100644
> --- a/src/remote-viewer.c
> +++ b/src/remote-viewer.c
> @@ -705,6 +705,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 399e9a6..2a8e490 100644
> --- a/src/virt-viewer-session-spice.c
> +++ b/src/virt-viewer-session-spice.c
> @@ -536,13 +536,17 @@ virt_viewer_session_spice_main_channel_event(SpiceChannel *channel G_GNUC_UNUSED
>  
>          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 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)
> +        /* 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 c6066c5..1b0ef65 100644
> --- a/src/virt-viewer.c
> +++ b/src/virt-viewer.c
> @@ -640,6 +640,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,
> -- 
> 1.9.3
> 
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20141002/d79beea2/attachment.sig>


More information about the virt-tools-list mailing list