xPDO и limit. Баг и фича?
Добрый вечер.
Имеется такая структура:
Коллекции (9)
— Ванильная птица (97)
— Тайна камней (12)
— Вино и виногрда (28)
(ресурс «Ванильная птица» привязан к группе ресурсов, которую анонимы не видят)
Возникла задача получить первый дочерний ресурс родителя с id равным 9, т.е у анонимов это будет ресурс с id=12, у залогиненных ресурс с id=97.
Пишу простейший сниппет:
И тут выясняется интересная картина.
echo count($result); у анонимов выведет 0, а у залогинных 1 (с ресурсом «Ванильная птица»).
Если убрать limit, то возвращаются все ресурсы которые видны текущему пользователю (у анонимов 2, у залогиненых 3), то есть всё верно.
Почему с limit 1 не правильно отрабатывает?
P.S.
Имеется такая структура:
Коллекции (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, не взирая на политики доступов Комментарии: 1
Насколько я понимаю, проверка прав проводится при попытке доступа к объекту. То есть, после выборки.
Не знаю, баг это или фича, но вы можете самостоятельно разобраться в логике работы — goo.gl/2w1qr
Не знаю, баг это или фича, но вы можете самостоятельно разобраться в логике работы — goo.gl/2w1qr
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.