diff options
author | Ray Strode <rstrode@redhat.com> | 2015-07-27 15:38:56 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-07-31 15:28:58 -0400 |
commit | 9d5b92e2b699f82fff09286574848c5fd39ca7dc (patch) | |
tree | 8b08c5f08d0eb6ee040e39cb585357d4e3533fd0 | |
parent | 02168722cfd18cdc0213c0d3270f04f8c5dbd375 (diff) | |
download | gnome-initial-setup-9d5b92e2b699f82fff09286574848c5fd39ca7dc.tar.gz |
password: detect enterprise account without heuristic
Right now we detect an enterprise account by the lack of an
ActUser object. That can't work going forward though, since other
bits of the code need an ActUser object for enterprise accounts.
This commit adds the account mode to the driver and changes the
password page to look at the account mode directly.
https://bugzilla.gnome.org/show_bug.cgi?id=752980
-rw-r--r-- | gnome-initial-setup/gis-driver.c | 16 | ||||
-rw-r--r-- | gnome-initial-setup/gis-driver.h | 11 | ||||
-rw-r--r-- | gnome-initial-setup/pages/account/gis-account-page.c | 7 | ||||
-rw-r--r-- | gnome-initial-setup/pages/password/gis-password-page.c | 7 |
4 files changed, 33 insertions, 8 deletions
diff --git a/gnome-initial-setup/gis-driver.c b/gnome-initial-setup/gis-driver.c index cbc4410..449745b 100644 --- a/gnome-initial-setup/gis-driver.c +++ b/gnome-initial-setup/gis-driver.c @@ -75,6 +75,7 @@ struct _GisDriverPrivate { gchar *username; GisDriverMode mode; + UmAccountMode account_mode; }; typedef struct _GisDriverPrivate GisDriverPrivate; @@ -194,6 +195,21 @@ gis_driver_get_user_permissions (GisDriver *driver, } void +gis_driver_set_account_mode (GisDriver *driver, + UmAccountMode mode) +{ + GisDriverPrivate *priv = gis_driver_get_instance_private (driver); + priv->account_mode = mode; +} + +UmAccountMode +gis_driver_get_account_mode (GisDriver *driver) +{ + GisDriverPrivate *priv = gis_driver_get_instance_private (driver); + return priv->account_mode; +} + +void gis_driver_add_page (GisDriver *driver, GisPage *page) { diff --git a/gnome-initial-setup/gis-driver.h b/gnome-initial-setup/gis-driver.h index 538deeb..9eb408e 100644 --- a/gnome-initial-setup/gis-driver.h +++ b/gnome-initial-setup/gis-driver.h @@ -38,6 +38,12 @@ G_BEGIN_DECLS typedef struct _GisDriver GisDriver; typedef struct _GisDriverClass GisDriverClass; +typedef enum { + UM_LOCAL, + UM_ENTERPRISE, + NUM_MODES, +} UmAccountMode; + struct _GisDriver { GtkApplication parent; @@ -69,6 +75,11 @@ void gis_driver_get_user_permissions (GisDriver *driver, ActUser **user, const gchar **password); +void gis_driver_set_account_mode (GisDriver *driver, + UmAccountMode mode); + +UmAccountMode gis_driver_get_account_mode (GisDriver *driver); + void gis_driver_set_user_language (GisDriver *driver, const gchar *lang_id); diff --git a/gnome-initial-setup/pages/account/gis-account-page.c b/gnome-initial-setup/pages/account/gis-account-page.c index 9cf5231..8f5dcc4 100644 --- a/gnome-initial-setup/pages/account/gis-account-page.c +++ b/gnome-initial-setup/pages/account/gis-account-page.c @@ -32,12 +32,6 @@ #include <glib/gi18n.h> #include <gio/gio.h> -typedef enum { - UM_LOCAL, - UM_ENTERPRISE, - NUM_MODES, -} UmAccountMode; - struct _GisAccountPagePrivate { GtkWidget *page_local; @@ -101,6 +95,7 @@ set_mode (GisAccountPage *page, return; priv->mode = mode; + gis_driver_set_account_mode (GIS_PAGE (page)->driver, mode); switch (mode) { diff --git a/gnome-initial-setup/pages/password/gis-password-page.c b/gnome-initial-setup/pages/password/gis-password-page.c index 92ac744..91dc694 100644 --- a/gnome-initial-setup/pages/password/gis-password-page.c +++ b/gnome-initial-setup/pages/password/gis-password-page.c @@ -73,16 +73,19 @@ gis_password_page_save_data (GisPage *gis_page) GisPasswordPage *page = GIS_PASSWORD_PAGE (gis_page); GisPasswordPagePrivate *priv = gis_password_page_get_instance_private (page); ActUser *act_user; + UmAccountMode account_mode; const gchar *password; if (gis_page->driver == NULL) return; - gis_driver_get_user_permissions (gis_page->driver, &act_user, &password); + account_mode = gis_driver_get_account_mode (gis_page->driver); - if (act_user == NULL) /* enterprise account */ + if (account_mode == UM_ENTERPRISE) return; + gis_driver_get_user_permissions (gis_page->driver, &act_user, &password); + password = gtk_entry_get_text (GTK_ENTRY (priv->password_entry)); if (strlen (password) == 0) |