вообще продумываю сейчас универсальную систему проверки ACL, где ресурсом является доменная модель (статья, категория). Столкнулся с проблемой лимитированной выборки, например, пагинацией. Допустим нам надо выбрать статьи с LIMIT 10, 20. Выбрали->отфильтровали acl. В результате сами понимаете, 10 статей на страницу может и не дойти =). У кого-то и вовсе может быть пусто. Что же получается, надо будет добирать? =))) Надо думать над интеграцией с БД.
в идеале, нужно делать запрос, который учтет acl, с помощью join и т.д.
Есть вариант забирать все id-шники из таблицы, пропускать их через Zend_Acl, а потом добавлять их в WHERE `id` IN (......) (или в NOT IN). Причем эти id можно закэшировать (хотя кэшировать придется для каждого пользователя). Интересно, насколько будет дорого применять такую проверку, скажем на 2000 записей? Думаю, будет жесть.