summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-07-27 14:47:15 -0400
committerRay Strode <rstrode@redhat.com>2015-07-31 15:30:21 -0400
commit857e22c5c99c0a5f656272838b89feb60e66e0c3 (patch)
treefe84b58da47829877c52b56ae34a5cdbfe826a6a
parent9d5b92e2b699f82fff09286574848c5fd39ca7dc (diff)
downloadgnome-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.c5
-rw-r--r--gnome-initial-setup/pages/account/gis-account-page.c17
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);