Oracle Apex filter выбирает запрос списка на основе ролей

#oracle-apex

#oracle-apex

Вопрос:

Мне нужно изменить список выбора, указанный для элемента страницы в моем приложении. В настоящее время он отображает доступные отделы.

 Select dept_name as d,dept_id as r from depts;
 

Теперь мне нужно изменить фильтр таким образом, чтобы, когда пользователь играет роль администратора, он должен видеть все отделы.

И если это пользователь, он будет видеть только отделы, в которые он входит inroles. Администратор является частью всех отделов, поэтому администратор будет видеть все отделы.

Таблица пользовательских ролей:

введите описание изображения здесь

Таблица ролей:

введите описание изображения здесь

 userrole.role_id=roles.id
 

Столбец dept_id заполняется из элемента shuttle, поэтому в приложении распределение ролей выполняется по отделам, поэтому пользователь может выбрать несколько отделов.

 **USERROLE.USER= :APP_USER**
 

В результате отделы хранятся в формате, разделенном двоеточием, поэтому это также необходимо обработать в запросе.

Таким образом, запрос должен быть таким, чтобы, когда пользователь является администратором, отображались все отделы, а если это пользователь, то это должны быть отделы из таблицы userrole.

Идентификатор отдела в запросе выбора lov равен идентификатору в роли пользователя.

Apex 20.2

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

1. Как вы привязываете текущего вошедшего в систему пользователя к строке в userrole ? Есть ли, скажем, элемент приложения для g_userrole_id или g_userrole_pk (не очевидно, почему существуют два разных столбца, которые, по-видимому, однозначно идентифицируют строку).

2. Моя вина: я пропустил, потому что не смог опубликовать фактические данные. отредактированный пост. Пожалуйста, проверьте

3. ПОЛЬЗОВАТЕЛЬСКАЯ РОЛЬ. ПОЛЬЗОВАТЕЛЬ = :APP_USER