如何过滤Apex网格中的数据以显示某些用户组的某些内容?

时间:2011-10-31 16:50:16

标签: sql database oracle security oracle-apex

我有一个ADMIN组和一个USER组。我的数据看起来像这样:

ID ---------- NAME --------- SECTOR
0001          John           A
0002          John           H
0024          John           A
0011          John           H
0045          John           A

ADMIN组应该只能看到A,而USER组应该只能看到H. 如何在Apex中自定义gridview以根据授权/组过滤它?

1 个答案:

答案 0 :(得分:1)

由于您使用的是APEX内置组,因此有一个功能APEX_UTIL.GET_GROUPS_USER_BELONGS_TO可以帮助您。它返回用户所属组的逗号分隔列表。所以你可以使用这样的东西:

select id, name, sector
from employees
where ((','||apex_util.get_groups_user_belongs_to(:app_user)||',' like '%,ADMIN,%'
      and sector = 'A')
or (','||apex_util.get_groups_user_belongs_to(:app_user)||',' like '%,USER,%'
      and sector = 'H'))