static void join_show_prompt (GisAccountPageEnterprise *page, GError *error) { GisAccountPageEnterprisePrivate *priv = gis_account_page_enterprise_get_instance_private (page); UmRealmKerberosMembership *membership; UmRealmKerberos *kerberos; gchar hostname[128]; const gchar *name; gtk_entry_set_text (GTK_ENTRY (priv->join_password), ""); gtk_widget_grab_focus (GTK_WIDGET (priv->join_password)); kerberos = um_realm_object_get_kerberos (priv->realm); membership = um_realm_object_get_kerberos_membership (priv->realm); gtk_label_set_text (GTK_LABEL (priv->join_domain), um_realm_kerberos_get_domain_name (kerberos)); if (gethostname (hostname, sizeof (hostname)) == 0) gtk_entry_set_text (GTK_ENTRY (priv->join_computer), hostname); clear_entry_validation_error (GTK_ENTRY (priv->join_name)); clear_entry_validation_error (GTK_ENTRY (priv->join_password)); if (!priv->join_prompted) { name = um_realm_kerberos_membership_get_suggested_administrator (membership); if (name && !g_str_equal (name, "")) { g_debug ("Suggesting admin user: %s", name); gtk_entry_set_text (GTK_ENTRY (priv->join_name), name); } else { gtk_widget_grab_focus (GTK_WIDGET (priv->join_name)); } } else if (g_error_matches (error, UM_REALM_ERROR, UM_REALM_ERROR_BAD_HOSTNAME)) { g_debug ("Bad host name: %s", error->message); set_entry_validation_error (GTK_ENTRY (priv->join_computer), error->message); } else if (g_error_matches (error, UM_REALM_ERROR, UM_REALM_ERROR_BAD_PASSWORD)) { g_debug ("Bad admin password: %s", error->message); set_entry_validation_error (GTK_ENTRY (priv->join_password), error->message); } else { g_debug ("Admin login failure: %s", error->message); g_dbus_error_strip_remote_error (error); set_entry_validation_error (GTK_ENTRY (priv->join_name), error->message); } g_debug ("Showing admin password dialog"); gtk_window_set_transient_for (GTK_WINDOW (priv->join_dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (page)))); gtk_window_set_modal (GTK_WINDOW (priv->join_dialog), TRUE); gtk_window_present (GTK_WINDOW (priv->join_dialog)); priv->join_prompted = TRUE; g_object_unref (kerberos); g_object_unref (membership); /* And now we wait for on_join_response() */ }
static void join_show_prompt (UmAccountDialog *self, GError *error) { UmRealmKerberosMembership *membership; UmRealmKerberos *kerberos; const gchar *name; gtk_entry_set_text (self->join_password, ""); gtk_widget_grab_focus (GTK_WIDGET (self->join_password)); kerberos = um_realm_object_get_kerberos (self->selected_realm); membership = um_realm_object_get_kerberos_membership (self->selected_realm); gtk_label_set_text (self->join_domain, um_realm_kerberos_get_domain_name (kerberos)); clear_entry_validation_error (self->join_name); clear_entry_validation_error (self->join_password); if (!self->join_prompted) { name = um_realm_kerberos_membership_get_suggested_administrator (membership); if (name && !g_str_equal (name, "")) { g_debug ("Suggesting admin user: %s", name); gtk_entry_set_text (self->join_name, name); } else { gtk_widget_grab_focus (GTK_WIDGET (self->join_name)); } } else if (g_error_matches (error, UM_REALM_ERROR, UM_REALM_ERROR_BAD_PASSWORD)) { g_debug ("Bad admin password: %s", error->message); set_entry_validation_error (self->join_password, error->message); } else { g_debug ("Admin login failure: %s", error->message); g_dbus_error_strip_remote_error (error); set_entry_validation_error (self->join_name, error->message); } g_debug ("Showing admin password dialog"); gtk_window_set_transient_for (GTK_WINDOW (self->join_dialog), GTK_WINDOW (self)); gtk_window_set_modal (GTK_WINDOW (self->join_dialog), TRUE); gtk_window_present (GTK_WINDOW (self->join_dialog)); self->join_prompted = TRUE; g_object_unref (kerberos); g_object_unref (membership); /* And now we wait for on_join_response() */ }