diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2014-05-13 08:26:28 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2014-05-13 08:26:28 +1200 |
commit | 4e39fc51f0ca513b6c4c05ed84395fdb701830d6 (patch) | |
tree | 98efa61da9a88292ec00b9b819bfc8acc0f93d24 | |
parent | 9c4a54f96ed8119831920afc7823989deb8dda81 (diff) | |
parent | b7edc8049afdcfbb6dd5bf3bc3d3bdd82606f1fa (diff) | |
download | lightdm-4e39fc51f0ca513b6c4c05ed84395fdb701830d6.tar.gz |
Add bindings for uid
-rw-r--r-- | debian/liblightdm-gobject-1-0.symbols | 1 | ||||
-rw-r--r-- | liblightdm-gobject/lightdm/user.h | 2 | ||||
-rw-r--r-- | liblightdm-gobject/user.c | 30 | ||||
-rw-r--r-- | liblightdm-qt/QLightDM/usersmodel.h | 3 | ||||
-rw-r--r-- | liblightdm-qt/usersmodel.cpp | 11 |
5 files changed, 41 insertions, 6 deletions
diff --git a/debian/liblightdm-gobject-1-0.symbols b/debian/liblightdm-gobject-1-0.symbols index 8baa6ca5..83321caf 100644 --- a/debian/liblightdm-gobject-1-0.symbols +++ b/debian/liblightdm-gobject-1-0.symbols @@ -78,6 +78,7 @@ liblightdm-gobject-1.so.0 liblightdm-gobject-1-0 #MINVER# lightdm_user_get_real_name@Base 0.9.2 lightdm_user_get_session@Base 0.9.2 lightdm_user_get_type@Base 0.9.2 + lightdm_user_get_uid@Base 1.11.1 lightdm_user_list_get_instance@Base 0.9.2 lightdm_user_list_get_length@Base 0.9.2 lightdm_user_list_get_type@Base 0.9.2 diff --git a/liblightdm-gobject/lightdm/user.h b/liblightdm-gobject/lightdm/user.h index b43fc516..f955ab29 100644 --- a/liblightdm-gobject/lightdm/user.h +++ b/liblightdm-gobject/lightdm/user.h @@ -106,6 +106,8 @@ gboolean lightdm_user_get_logged_in (LightDMUser *user); gboolean lightdm_user_get_has_messages (LightDMUser *user); +uid_t lightdm_user_get_uid (LightDMUser *user); + G_END_DECLS #endif /* LIGHTDM_USER_H_ */ diff --git a/liblightdm-gobject/user.c b/liblightdm-gobject/user.c index 4fb5f044..7d54b6d2 100644 --- a/liblightdm-gobject/user.c +++ b/liblightdm-gobject/user.c @@ -38,7 +38,8 @@ enum USER_PROP_LAYOUTS, USER_PROP_SESSION, USER_PROP_LOGGED_IN, - USER_PROP_HAS_MESSAGES + USER_PROP_HAS_MESSAGES, + USER_PROP_UID, }; enum @@ -526,6 +527,21 @@ lightdm_user_get_has_messages (LightDMUser *user) return common_user_get_has_messages (GET_USER_PRIVATE (user)->common_user); } +/** + * lightdm_user_get_uid: + * @user: A #LightDMUser + * + * Get the uid of a user. + * + * Return value: The uid of the given user + **/ +uid_t +lightdm_user_get_uid (LightDMUser *user) +{ + g_return_val_if_fail (LIGHTDM_IS_USER (user), NULL); + return common_user_get_uid (GET_USER_PRIVATE (user)->common_user); +} + static void lightdm_user_init (LightDMUser *user) { @@ -599,6 +615,9 @@ lightdm_user_get_property (GObject *object, case USER_PROP_HAS_MESSAGES: g_value_set_boolean (value, lightdm_user_get_has_messages (self)); break; + case USER_PROP_UID: + g_value_set_uint64 (value, lightdm_user_get_uid (self)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -620,7 +639,7 @@ static void lightdm_user_class_init (LightDMUserClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); - + g_type_class_add_private (klass, sizeof (LightDMUserPrivate)); object_class->set_property = lightdm_user_set_property; @@ -718,6 +737,13 @@ lightdm_user_class_init (LightDMUserClass *klass) "TRUE if the user is has waiting messages", FALSE, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + USER_PROP_UID, + g_param_spec_string ("uid", + "uid", + "User UID", + NULL, + G_PARAM_READABLE)); /** * LightDMUser::changed: diff --git a/liblightdm-qt/QLightDM/usersmodel.h b/liblightdm-qt/QLightDM/usersmodel.h index d803c41c..9407e46e 100644 --- a/liblightdm-qt/QLightDM/usersmodel.h +++ b/liblightdm-qt/QLightDM/usersmodel.h @@ -37,7 +37,8 @@ public: SessionRole, HasMessagesRole, ImagePathRole, - BackgroundPathRole + BackgroundPathRole, + UidRole }; int rowCount(const QModelIndex &parent) const; diff --git a/liblightdm-qt/usersmodel.cpp b/liblightdm-qt/usersmodel.cpp index f45a79e2..558cd329 100644 --- a/liblightdm-qt/usersmodel.cpp +++ b/liblightdm-qt/usersmodel.cpp @@ -29,6 +29,7 @@ public: QString session; bool isLoggedIn; bool hasMessages; + quint64 uid; QString displayName() const; }; @@ -66,7 +67,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent) : { #if !defined(GLIB_VERSION_2_36) g_type_init(); -#endif +#endif } UsersModelPrivate::~UsersModelPrivate() @@ -99,6 +100,7 @@ void UsersModelPrivate::loadUsers() user.session = QString::fromUtf8(lightdm_user_get_session(ldmUser)); user.isLoggedIn = lightdm_user_get_logged_in(ldmUser); user.hasMessages = lightdm_user_get_has_messages(ldmUser); + user.uid = (quint64)lightdm_user_get_uid(ldmUser); users.append(user); } @@ -109,8 +111,6 @@ void UsersModelPrivate::loadUsers() g_signal_connect(lightdm_user_list_get_instance(), "user-removed", G_CALLBACK (cb_userRemoved), this); } - - void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ldmUser, gpointer data) { Q_UNUSED(user_list) @@ -126,6 +126,7 @@ void UsersModelPrivate::cb_userAdded(LightDMUserList *user_list, LightDMUser *ld user.background = QString::fromUtf8(lightdm_user_get_background(ldmUser)); user.isLoggedIn = lightdm_user_get_logged_in(ldmUser); user.hasMessages = lightdm_user_get_has_messages(ldmUser); + user.uid = (quint64)lightdm_user_get_uid(ldmUser); that->users.append(user); that->q_func()->endInsertRows(); @@ -148,6 +149,7 @@ void UsersModelPrivate::cb_userChanged(LightDMUserList *user_list, LightDMUser * that->users[i].background = QString::fromUtf8(lightdm_user_get_background(ldmUser)); that->users[i].isLoggedIn = lightdm_user_get_logged_in(ldmUser); that->users[i].hasMessages = lightdm_user_get_has_messages(ldmUser); + that->users[i].uid = (quint64)lightdm_user_get_uid(ldmUser); QModelIndex index = that->q_ptr->createIndex(i, 0); that->q_ptr->dataChanged(index, index); @@ -189,6 +191,7 @@ UsersModel::UsersModel(QObject *parent) : roles[SessionRole] = "session"; roles[HasMessagesRole] = "hasMessages"; roles[ImagePathRole] = "imagePath"; + roles[UidRole] = "uid"; setRoleNames(roles); d->loadUsers(); @@ -240,6 +243,8 @@ QVariant UsersModel::data(const QModelIndex &index, int role) const return d->users[row].hasMessages; case UsersModel::ImagePathRole: return d->users[row].image; + case UsersModel::UidRole: + return d->users[row].uid; } return QVariant(); |