diff options
Diffstat (limited to 'src/libaccountsservice/act-user.c')
-rw-r--r-- | src/libaccountsservice/act-user.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c index 13d82e7..33d15a8 100644 --- a/src/libaccountsservice/act-user.c +++ b/src/libaccountsservice/act-user.c @@ -57,6 +57,7 @@ enum { PROP_SYSTEM_ACCOUNT, PROP_LOCAL_ACCOUNT, PROP_LOGIN_FREQUENCY, + PROP_LOGIN_TIME, PROP_ICON_FILE, PROP_LANGUAGE, PROP_X_SESSION, @@ -91,6 +92,7 @@ struct _ActUser { char *x_session; GList *sessions; int login_frequency; + gint64 login_time; ActUserAccountType account_type; ActUserPasswordMode password_mode; @@ -206,6 +208,9 @@ act_user_get_property (GObject *object, case PROP_LOGIN_FREQUENCY: g_value_set_int (value, user->login_frequency); break; + case PROP_LOGIN_TIME: + g_value_set_int64 (value, user->login_time); + break; case PROP_SHELL: g_value_set_string (value, user->shell); break; @@ -343,6 +348,15 @@ act_user_class_init (ActUserClass *class) 0, G_PARAM_READABLE)); g_object_class_install_property (gobject_class, + PROP_LOGIN_TIME, + g_param_spec_int64 ("login-time", + "Login time", + "The last login time for this user.", + 0, + G_MAXINT64, + 0, + G_PARAM_READABLE)); + g_object_class_install_property (gobject_class, PROP_ICON_FILE, g_param_spec_string ("icon-file", "Icon File", @@ -676,6 +690,21 @@ act_user_get_login_frequency (ActUser *user) return user->login_frequency; } +/** + * act_user_get_login_time: + * @user: a #ActUser + * + * Returns the last login time for @user. + * + * Returns: (transfer none): the login time + */ +gint64 +act_user_get_login_time (ActUser *user) { + g_return_val_if_fail (ACT_IS_USER (user), 0); + + return user->login_time; +} + int act_user_collate (ActUser *user1, ActUser *user2) @@ -1036,6 +1065,13 @@ collect_props (const gchar *key, user->login_frequency = new_login_frequency; g_object_notify (G_OBJECT (user), "login-frequency"); } + } else if (strcmp (key, "LoginTime") == 0) { + gint64 new_login_time = value; + + if (user->login_time != new_login_time) { + user->login_time = new_login_time; + g_object_notify (G_OBJECT (user), "login-time"); + } } else if (strcmp (key, "IconFile") == 0) { const char *new_icon_file; |