summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2010-09-10 10:40:49 -0400
committerRay Strode <rstrode@redhat.com>2010-09-10 13:36:09 -0400
commit02f11f48cb6a22b330512c7264e4baea594e6e33 (patch)
treedf07904031acc459f4352affddfdbccbd5e1cabd
parent10d14fb3d057f5fa3ddecd43aaf68b73d1f68771 (diff)
downloadgdm-02f11f48cb6a22b330512c7264e4baea594e6e33.tar.gz
Use create_new_user in get_user call
Previously, we would call two different constructors, depending on whether or not the user was coming from the accounts service or the nsswitch. Now we create a new "unloaded" user immediately, and just call the relevant update function to load the user.
-rw-r--r--gui/simple-greeter/gdm-user-manager.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/gui/simple-greeter/gdm-user-manager.c b/gui/simple-greeter/gdm-user-manager.c
index 69644156..bd36380c 100644
--- a/gui/simple-greeter/gdm-user-manager.c
+++ b/gui/simple-greeter/gdm-user-manager.c
@@ -745,20 +745,6 @@ add_user (GdmUserManager *manager,
}
}
-static GdmUser *
-add_new_user_for_pwent (GdmUserManager *manager,
- struct passwd *pwent)
-{
- GdmUser *user;
-
- g_debug ("GdmUserManager: Creating new user from password entry: %s", pwent->pw_name);
-
- user = create_new_user (manager);
- _gdm_user_update_from_pwent (user, pwent);
-
- return user;
-}
-
static void
remove_user (GdmUserManager *manager,
GdmUser *user)
@@ -1576,20 +1562,24 @@ gdm_user_manager_get_user (GdmUserManager *manager,
/* if we don't have it loaded try to load it now */
if (user == NULL) {
+ user = create_new_user (manager);
+
if (manager->priv->accounts_proxy != NULL) {
char *object_path;
object_path = get_user_object_path_from_accounts_service (manager, username);
if (object_path != NULL) {
- user = add_new_user_for_object_path (object_path, manager);
+ _gdm_user_update_from_object_path (user, object_path);
g_free (object_path);
}
} else {
struct passwd *pwent;
+
get_pwent_for_name (username, &pwent);
+
if (pwent != NULL) {
- user = add_new_user_for_pwent (manager, pwent);
+ _gdm_user_update_from_pwent (user, pwent);
}
}
}