static JSValueRef
get_users_cb(JSContextRef context,
			 JSObjectRef thisObject,
			 JSStringRef propertyName,
			 JSValueRef *exception) {

	JSObjectRef array;
	const GList *users, *link;
	guint i, n_users = 0;
	JSValueRef *args;

	users = lightdm_user_list_get_users(lightdm_user_list_get_instance());
	n_users = g_list_length((GList *) users);
	args = g_malloc(sizeof(JSValueRef) * ( n_users + 1 ));

	for (i = 0, link = users; link; i++, link = link->next) {
		LightDMUser *user = link->data;
		g_object_ref(user);
		args[i] = JSObjectMake(context, lightdm_user_class, user);
	}

	array = JSObjectMakeArray(context, n_users, args, exception);
	g_free(args);

	if (array == NULL) {
		return JSValueMakeNull(context);
	} else {
		return array;
	}
}
示例#2
0
JS_EXPORT_API
JSObjectRef greeter_get_users ()
{
    JSObjectRef array = json_array_create ();

    LightDMUser *user = NULL;
    guint i;

    if (users == NULL) {
        LightDMUserList *user_list = lightdm_user_list_get_instance ();
        if (user_list == NULL) {
            g_warning ("get users:user list is NULL\n");
            return array;
        }

        users = lightdm_user_list_get_users (user_list);
    }

    for (i = 0; i < g_list_length (users); ++i) {
        gchar *username = NULL;

        user = (LightDMUser *) g_list_nth_data (users, i);
        username = g_strdup (lightdm_user_get_name (user));

        json_array_insert (array, i, jsvalue_from_cstr (get_global_context (), g_strdup (username)));

        g_free (username);
    }

    return array;
}
static JSValueRef
get_num_users_cb(JSContextRef context,
				 JSObjectRef thisObject,
				 JSStringRef propertyName,
				 JSValueRef *exception) {
	return JSValueMakeNumber(
		context,
		g_list_length(lightdm_user_list_get_users(lightdm_user_list_get_instance()))
	);
}
static void
lightdm_user_list_init(LightdmUserList *lightdm_user_list)
{
	const GList *items, *item;
	LightDMUser *user;

	items = lightdm_user_list_get_users (lightdm_user_list_get_instance ());
	for (item = items; item; item = item->next) {
		user = item->data;
		lightdm_user_list_append_lightdm_user(lightdm_user_list, user);
	}

	if (lightdm_greeter_get_has_guest_account_hint (lightdm_user_list->xfce4_greeter->greeter))
		lightdm_user_list_append_user(lightdm_user_list, "*guest", _("Guest Account"));

	lightdm_user_list_append_user(lightdm_user_list, "*other", _("Other..."));
}
示例#5
0
JS_EXPORT_API
gchar* greeter_get_user_session (const gchar *name)
{
    gchar *session = NULL;
    LightDMUserList *user_list = NULL;
    LightDMUser *user = NULL;

    user_list = lightdm_user_list_get_instance ();
    if (user_list == NULL) {
        g_warning ("greeter get user session:user list is NULL\n");
        return NULL;
    }

    user = lightdm_user_list_get_user_by_name (user_list, name);
    if (user == NULL) {
        g_warning ("greeter get user session:user for %s is NULL\n", name);
        return NULL;
    }

    session = g_strdup (lightdm_user_get_session (user));

    return session;
}