У меня есть таблица с страницей и ее номерами страниц, хранящимися в ней. Я хочу отображать только те полосы в меню навигации, номера страниц которых назначены конечному пользователю. Как я могу это сделать? Я использую Apex 19.1
Управление доступом к меню навигации через БД - Apex oracle
Ответы (1)
Создайте функцию, которая возвращает логическое значение, сообщающее, может ли определенный пользователь (или не может) получить доступ к определенной странице, например
create table t_access as
select 1 page_no, 'LITTLE' app_user, 'Y' yn from dual union all --> can access page 1
select 2 page_no, 'LITTLE' app_user, 'N' yn from dual; --> can NOT access page 2
create or replace function f_access(par_page_no in number, par_app_user in varchar2)
return boolean
as
l_yn t_access.yn%type;
begin
select a.yn
into l_yn
from t_access a
where a.page_no = par_page_no
and a.app_user = par_app_user;
return l_yn = 'Y';
exception
when no_data_found then
return false;
end;
Используйте эту функцию в свойстве условия записи списка навигации; сделайте его "телом функции PL / SQL, возвращающим логическое значение" как
return f_access(1, :APP_USER);
person
Littlefoot
schedule
09.06.2020