xPDO и limit. Баг и фича?

Добрый вечер.

Имеется такая структура:

Коллекции (9)
— Ванильная птица (97)
— Тайна камней (12)
— Вино и виногрда (28)

(ресурс «Ванильная птица» привязан к группе ресурсов, которую анонимы не видят)
Возникла задача получить первый дочерний ресурс родителя с id равным 9, т.е у анонимов это будет ресурс с id=12, у залогиненных ресурс с id=97.

Пишу простейший сниппет:

$c = $modx->newQuery('modResource');
$c->select(array('id', 'pagetitle'));
$c->sortby('menuindex', 'asc');
$c->where(array('parent' => 9));
$c->limit(1);

$result = $modx->getCollection('modResource', $c);

И тут выясняется интересная картина.

echo count($result); у анонимов выведет 0, а у залогинных 1 (с ресурсом «Ванильная птица»).

Если убрать limit, то возвращаются все ресурсы которые видны текущему пользователю (у анонимов 2, у залогиненых 3), то есть всё верно.

Почему с limit 1 не правильно отрабатывает?

P.S.
$modx->getCount('modResource', $c)
всегда возвращает 3, не взирая на политики доступов
Олег Максименко
20 октября 2012, 17:59
modx.pro
1 111
0

Комментарии: 1

Василий Наумкин
21 октября 2012, 08:21
0
Насколько я понимаю, проверка прав проводится при попытке доступа к объекту. То есть, после выборки.

Не знаю, баг это или фича, но вы можете самостоятельно разобраться в логике работы — goo.gl/2w1qr
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1