【发布时间】:2015-02-01 20:43:26
【问题描述】:
我正在尝试使用内置组功能来控制对我在 Oracle APEX 中的应用程序的访问。我在尝试使用的授权方案的表达式 1 中有以下代码:
DECLARE
VAL BOOLEAN;
BEGIN
IF (
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'Problem Solvers') OR
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'OPS') OR
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'SUPERUSER') )then
VAL := TRUE;
else VAL := FALSE;
end if;
RETURN VAL;
END;
此代码将阻止访问我的应用程序中的所有页面,但我无法再访问登录页面(除非我已经从开发界面登录)。我尝试在条件中包含一个附加的“OR :APP_PAGE_ID = 101”,但这会导致意外行为。特别是,当授权用户注销,而未授权用户随后登录时,他们仍然可以访问整个应用程序。我尝试设置清除会话缓存,并在登录页面上清除应用程序缓存进程,但无济于事。关于正确的做法有什么想法吗?
【问题讨论】:
-
我使用此代码在应用级别进行授权。我可以在页面级别使用它,它工作得很好,但我真的不喜欢必须单独访问每个页面来设置授权。
标签: oracle authorization oracle-apex