/* User list this user is part of */
CommonUserList *user_list;
- /* TRUE if have loaded user properties */
- gboolean loaded_values;
+ /* TRUE if have loaded the DMRC file */
+ gboolean loaded_dmrc;
/* Accounts service path */
gchar *path;
g_variant_unref (result);
- priv->loaded_values = TRUE;
-
return !system_account;
}
g_key_file_free (dmrc);
}
+/* Loads language/layout/session info for user */
static void
load_dmrc (CommonUser *user)
{
CommonUserPrivate *priv = GET_USER_PRIVATE (user);
GKeyFile *dmrc;
+ /* We're using Accounts service instead */
+ if (priv->path)
+ return;
+
+ if (priv->loaded_dmrc)
+ return;
+ priv->loaded_dmrc = TRUE;
dmrc = dmrc_load (user);
// FIXME: Watch for changes
g_key_file_free (dmrc);
}
-/* Loads language/layout/session info for user */
-static void
-load_user_values (CommonUser *user)
-{
- CommonUserPrivate *priv = GET_USER_PRIVATE (user);
-
- if (priv->loaded_values)
- return;
- priv->loaded_values = TRUE;
-
- if (!priv->path)
- load_dmrc (user);
-}
-
/**
* common_user_get_name:
* @user: A #CommonUser
common_user_get_name (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->name;
}
common_user_get_real_name (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->real_name;
}
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
-
priv = GET_USER_PRIVATE (user);
if (!priv->real_name || strcmp (priv->real_name, "") == 0)
return priv->name;
common_user_get_home_directory (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->home_directory;
}
common_user_get_shell (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->shell;
}
common_user_get_image (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->image;
}
common_user_get_background (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
return GET_USER_PRIVATE (user)->background;
}
common_user_get_language (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
+ load_dmrc (user);
const gchar *language = GET_USER_PRIVATE (user)->language;
return (language && language[0] == 0) ? NULL : language; /* Treat "" as NULL */
}
common_user_get_layout (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
+ load_dmrc (user);
return GET_USER_PRIVATE (user)->layouts[0];
}
common_user_get_layouts (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
+ load_dmrc (user);
return (const gchar * const *) GET_USER_PRIVATE (user)->layouts;
}
common_user_get_session (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), NULL);
- load_user_values (user);
+ load_dmrc (user);
const gchar *session = GET_USER_PRIVATE (user)->session;
return (session && session[0] == 0) ? NULL : session; /* Treat "" as NULL */
}
common_user_get_has_messages (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), FALSE);
- load_user_values (user);
return GET_USER_PRIVATE (user)->has_messages;
}
common_user_get_uid (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), 0);
- load_user_values (user);
return GET_USER_PRIVATE (user)->uid;
}
common_user_get_gid (CommonUser *user)
{
g_return_val_if_fail (COMMON_IS_USER (user), 0);
- load_user_values (user);
/* gid is not actually stored in AccountsService, so if our user is from
AccountsService, we have to look up manually in passwd. gid won't
change, so just look up the first time we're asked and never again. */