Row-level роль и сортировка в groupTable

Добрый день! Обнаружили странное поведение системы, когда используется row-level роль (на тестовом проекте воспроизвести получилось)
RowLevelError.zip (90.3 КБ)
RowLevelRoles.zip (717 Байт)
Возникает так: если на сущность есть row-level ограничение, которое содержит условие типа

{E}.<something> = :current_user_something or {E}.<something> is null

(как в приложенной роли), то некорректно отображаются данные, если есть сортировка по колонке, содержащей это поле.
Например: заводим несколько юзеров, одному из них назначаем Row-level роль:
image

worker:
image

с таким условием:
image

Создаем Notes:
image

И ожидаем, что если зайти под пользователем worker, то он увидит свою (Note1) и ничью (Note4). И если на колонках нет сортировок, то так оно и есть:
image

А если мы добавим сортировку по полю Assigned to и потом нажмем Refresh (или закроем и откроем эту форму), то:
image

Ничейная пропадает и не появляется, пока есть сортировка. Если сортировку убрать, тогда появляется

(Jmix 1.5.3-1.5.4)

Здравствуйте, Виктория!

Спасибо за то, что обнаружили проблему и предоставили проект для воспроизведения! Было заведено issue, посмотрим можно ли с этим что-то сделать.

При сортировке по колонке-сущности, на которую распространяется условие, происходит неявный inner join, что ломает первое условие из where clause.

Чтобы избавиться от этой проблемы можно явно указать left join в Row-level policy:
изображение
fixed-worker-role.zip (768 Байт)

С уважением,
Дмитрий