diff options
| author | Matthias Clasen <mclasen@redhat.com> | 2012-12-06 23:22:47 -0500 |
|---|---|---|
| committer | Matthias Clasen <mclasen@redhat.com> | 2012-12-06 23:22:47 -0500 |
| commit | 729a2feb54dbbaeea051f36ff81093dc682202f3 (patch) | |
| tree | e9fbb24231420630c16a75f5fce90954d72fca7b | |
| parent | 9c3def4bcc348f14f21c9f694b7dde53c7c46d42 (diff) | |
Add act_user_manager_get_user_by_id
This function looks up an ActUser object for a given uid.
| -rw-r--r-- | src/libaccountsservice/act-user-manager.c | 27 | ||||
| -rw-r--r-- | src/libaccountsservice/act-user-manager.h | 2 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c index 0b50829..6387f3a 100644 --- a/src/libaccountsservice/act-user-manager.c +++ b/src/libaccountsservice/act-user-manager.c @@ -2065,6 +2065,33 @@ act_user_manager_get_user (ActUserManager *manager, return user; } +/** + * act_user_manager_get_user_by_id: + * @manager: the manager to query. + * @id: the uid of the user to get. + * + * Retrieves a pointer to the #ActUser object for the user with the + * given uid from @manager. Trying to use this object before its + * #ActUser:is-loaded property is %TRUE will result in undefined + * behavior. + * + * Returns: (transfer none): #ActUser object + */ +ActUser * +act_user_manager_get_user_by_id (ActUserManager *manager, + uid_t id) +{ + ActUser *user; + gchar *object_path; + + g_return_val_if_fail (ACT_IS_USER_MANAGER (manager), NULL); + + object_path = g_strdup_printf ("/org/freedesktop/Accounts/User%ld", id); + user = add_new_user_for_object_path (object_path, manager); + g_free (object_path); + return user; +} + static void listify_hash_values_hfunc (gpointer key, gpointer value, diff --git a/src/libaccountsservice/act-user-manager.h b/src/libaccountsservice/act-user-manager.h index 7548102..b51e392 100644 --- a/src/libaccountsservice/act-user-manager.h +++ b/src/libaccountsservice/act-user-manager.h @@ -78,6 +78,8 @@ ActUserManager * act_user_manager_get_default (void); GSList * act_user_manager_list_users (ActUserManager *manager); ActUser * act_user_manager_get_user (ActUserManager *manager, const char *username); +ActUser * act_user_manager_get_user_by_id (ActUserManager *manager, + uid_t id); gboolean act_user_manager_activate_user_session (ActUserManager *manager, ActUser *user); |
