summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-07-27 15:38:56 -0400
committerRay Strode <rstrode@redhat.com>2015-07-31 15:28:58 -0400
commit9d5b92e2b699f82fff09286574848c5fd39ca7dc (patch)
tree8b08c5f08d0eb6ee040e39cb585357d4e3533fd0
parent02168722cfd18cdc0213c0d3270f04f8c5dbd375 (diff)
downloadgnome-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.c16
-rw-r--r--gnome-initial-setup/gis-driver.h11
-rw-r--r--gnome-initial-setup/pages/account/gis-account-page.c7
-rw-r--r--gnome-initial-setup/pages/password/gis-password-page.c7
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)