1 /* -*- Mode: C; indent-tabs-mode: nil; tab-width: 4 -*-
3 * Copyright (C) 2010-2011 Robert Ancell.
4 * Author: Robert Ancell <robert.ancell@canonical.com>
6 * This program is free software: you can redistribute it and/or modify it under
7 * the terms of the GNU General Public License as published by the Free Software
8 * Foundation, either version 3 of the License, or (at your option) any later
9 * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
17 #include "user-list.h"
21 /* Internal user object */
22 CommonUser *common_user;
25 G_DEFINE_TYPE (User, user, G_TYPE_OBJECT);
28 accounts_get_user_by_name (const gchar *username)
31 CommonUser *common_user;
33 g_return_val_if_fail (username != NULL, NULL);
35 common_user = common_user_list_get_user_by_name (common_user_list_get_instance (), username);
36 if (common_user != NULL)
38 user = g_object_new (USER_TYPE, NULL);
39 user->priv->common_user = common_user;
46 accounts_get_current_user ()
48 struct passwd *entry = getpwuid (getuid ());
50 return accounts_get_user_by_name (entry->pw_name);
56 user_get_name (User *user)
58 g_return_val_if_fail (user != NULL, NULL);
59 return common_user_get_name (user->priv->common_user);
63 user_get_uid (User *user)
65 g_return_val_if_fail (user != NULL, 0);
66 return common_user_get_uid (user->priv->common_user);
70 user_get_gid (User *user)
72 g_return_val_if_fail (user != NULL, 0);
73 return common_user_get_gid (user->priv->common_user);
77 user_get_home_directory (User *user)
79 g_return_val_if_fail (user != NULL, NULL);
80 return common_user_get_home_directory (user->priv->common_user);
84 user_get_shell (User *user)
86 g_return_val_if_fail (user != NULL, NULL);
87 return common_user_get_shell (user->priv->common_user);
91 user_set_language (User *user, const gchar *language)
93 g_return_if_fail (user != NULL);
94 common_user_set_language (user->priv->common_user, language);
98 user_get_language (User *user)
100 g_return_val_if_fail (user != NULL, NULL);
101 return common_user_get_language (user->priv->common_user);
105 user_set_xsession (User *user, const gchar *xsession)
107 g_return_if_fail (user != NULL);
108 common_user_set_session (user->priv->common_user, xsession);
112 user_get_xsession (User *user)
114 g_return_val_if_fail (user != NULL, NULL);
115 return common_user_get_session (user->priv->common_user);
119 user_init (User *user)
121 user->priv = G_TYPE_INSTANCE_GET_PRIVATE (user, USER_TYPE, UserPrivate);
125 user_finalize (GObject *object)
127 User *self = USER (object);
129 g_clear_object (&self->priv->common_user);
131 G_OBJECT_CLASS (user_parent_class)->finalize (object);
135 user_class_init (UserClass *klass)
137 GObjectClass *object_class = G_OBJECT_CLASS (klass);
139 object_class->finalize = user_finalize;
141 g_type_class_add_private (klass, sizeof (UserPrivate));