通过 DB 进行导航菜单访问控制 - Apex oracle

Navigation menu access control through DB - Apex oracle

我有一个 table,其中存储了 Page 及其页码。我只想显示导航菜单上那些页码分配给最终用户的栏。我该怎么做? 我正在使用 Apex 19.1

创建一个 returns 布尔值的函数,说明某个用户是否可以(或不能)访问某个页面,例如

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 function body returning a Boolean" 为

    return f_access(1, :APP_USER);