← К заметкам

Заметки

Почему DealTable::getList фильтрует UF-поле под админом, но не под сотрудником

DealTable::getList — ORM-выборка. Она сама по себе не должна восприниматься как список сделок, автоматически ограниченный CRM-правами текущего сотрудника.

Если результат отличается под администратором и обычным пользователем, сравните фактические фильтр, SQL, подключённые обработчики и кеш. Причина может находиться в окружающем коде, который добавляет условия до выполнения запроса.

Для UF-поля проверьте техническое имя и тип значения. Строка 'Y', число 1 и ID варианта списка не взаимозаменяемы.

Если данные показываются сотруднику, используйте слой CRM с проверкой доступа либо добавьте её явно. Выдавать пользователю прямой результат ORM только потому, что запрос «работает», нельзя.