diff options
author | Ray Strode <rstrode@redhat.com> | 2015-07-27 14:47:15 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-07-31 15:30:21 -0400 |
commit | 857e22c5c99c0a5f656272838b89feb60e66e0c3 (patch) | |
tree | fe84b58da47829877c52b56ae34a5cdbfe826a6a | |
parent | 9d5b92e2b699f82fff09286574848c5fd39ca7dc (diff) | |
download | gnome-initial-setup-857e22c5c99c0a5f656272838b89feb60e66e0c3.tar.gz |
account: set act_user object on driver
The summary page expects the act-user object to be set in
the driver. That only happens at the moment for local
users, not enterprise login users.
This commit fixes things, so it happens for enterprise login
users as well.
https://bugzilla.gnome.org/show_bug.cgi?id=752980
-rw-r--r-- | gnome-initial-setup/pages/account/gis-account-page-enterprise.c | 5 | ||||
-rw-r--r-- | gnome-initial-setup/pages/account/gis-account-page.c | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gnome-initial-setup/pages/account/gis-account-page-enterprise.c b/gnome-initial-setup/pages/account/gis-account-page-enterprise.c index f33688c..4c9feb3 100644 --- a/gnome-initial-setup/pages/account/gis-account-page-enterprise.c +++ b/gnome-initial-setup/pages/account/gis-account-page-enterprise.c @@ -79,6 +79,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GisAccountPageEnterprise, gis_account_page_enterpris enum { VALIDATION_CHANGED, + USER_CACHED, LAST_SIGNAL, }; @@ -173,6 +174,7 @@ on_permit_user_login (GObject *source, g_debug ("Caching remote user: %s", login); priv->act_user = act_user_manager_cache_user (priv->act_client, login, NULL); + g_signal_emit (page, signals[USER_CACHED], 0, priv->act_user, gtk_entry_get_text (GTK_ENTRY (priv->password))); apply_complete (page, TRUE); g_free (login); @@ -821,6 +823,9 @@ gis_account_page_enterprise_class_init (GisAccountPageEnterpriseClass *klass) signals[VALIDATION_CHANGED] = g_signal_new ("validation-changed", GIS_TYPE_ACCOUNT_PAGE_ENTERPRISE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); + signals[USER_CACHED] = g_signal_new ("user-cached", GIS_TYPE_ACCOUNT_PAGE_ENTERPRISE, + G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, + G_TYPE_NONE, 2, ACT_TYPE_USER, G_TYPE_STRING); } static void diff --git a/gnome-initial-setup/pages/account/gis-account-page.c b/gnome-initial-setup/pages/account/gis-account-page.c index 8f5dcc4..f59428f 100644 --- a/gnome-initial-setup/pages/account/gis-account-page.c +++ b/gnome-initial-setup/pages/account/gis-account-page.c @@ -190,6 +190,21 @@ on_local_page_confirmed (GisAccountPageLocal *local, } static void +on_local_user_cached (GtkWidget *page_local, + ActUser *user, + char *password, + GisAccountPage *page) +{ + const gchar *language; + + language = gis_driver_get_user_language (GIS_PAGE (page)->driver); + if (language) + act_user_set_language (user, language); + + gis_driver_set_user_permissions (GIS_PAGE (page)->driver, user, password); +} + +static void gis_account_page_constructed (GObject *object) { GisAccountPage *page = GIS_ACCOUNT_PAGE (object); @@ -206,6 +221,8 @@ gis_account_page_constructed (GObject *object) g_signal_connect (priv->page_enterprise, "validation-changed", G_CALLBACK (on_validation_changed), page); + g_signal_connect (priv->page_enterprise, "user-cached", + G_CALLBACK (on_local_user_cached), page); update_page_validation (page); |