Управление доступом к меню навигации через БД - Apex oracle

У меня есть таблица с страницей и ее номерами страниц, хранящимися в ней. Я хочу отображать только те полосы в меню навигации, номера страниц которых назначены конечному пользователю. Как я могу это сделать? Я использую Apex 19.1


person sbl    schedule 09.06.2020    source источник


Ответы (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