[gnome-initial-setup] password: detect enterprise account without heuristic
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] password: detect enterprise account without heuristic
- Date: Fri, 31 Jul 2015 19:31:52 +0000 (UTC)
commit 9d5b92e2b699f82fff09286574848c5fd39ca7dc
Author: Ray Strode <rstrode redhat com>
Date: Mon Jul 27 15:38:56 2015 -0400
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
gnome-initial-setup/gis-driver.c | 16 ++++++++++++++++
gnome-initial-setup/gis-driver.h | 11 +++++++++++
.../pages/account/gis-account-page.c | 7 +------
.../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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]