我正在 Apex 中进行开发,使用自定义身份验证并使用 apex 内置 acl(访问控制列表)。
我的自定义身份验证工作正常。 尊敬的授权:
1 - 创建新用户并添加角色工作正常。 2 - 现在我想在登录页面创建一个进程来获取用户的角色并设置是否被授权。 3 - 我正在使用下面的代码,但出现下面的错误。
你能帮我理解这个语法有什么问题吗?
我开始对此感到绝望。
declare
l_is_admin BOOLEAN :=false;
function "APEX_AUTHORIZATION.IS_AUTHORIZED"(
p_authorization_name IN VARCHAR2 )
RETURN BOOLEAN;
begin
l_is_admin := apex_acl.has_user_role (
p_application_id => 100,
p_user_name => :P9999_USERNAME,
p_role_static_id => ('ADMINISTRATOR')
);
if l_is_admin then
apex_authorization.is_authorized (
p_authorization_name => 'Administration Rights' )
return true;
end if;
end;
这是错误: ORA-06550:第 20 行,第 1 列:PLS-00103:在期望以下其中一项时遇到符号“RETURN”: := 。 (%;
大量语法错误导致代码无法编译,例如
declare
完全是多余的;变量应该在函数代码中声明true
,但是 - 如果 l_is_admin 为 false 该怎么办?函数不会返回任何内容。我并不是说这段代码会按照你想要的方式工作,但它至少应该可以编译(如果 Apex 内置函数的调用是正确的)。
function APEX_AUTHORIZATION.IS_AUTHORIZED
(p_authorization_name IN VARCHAR2)
RETURN BOOLEAN
is
l_is_admin BOOLEAN := false;
begin
l_is_admin := apex_acl.has_user_role
( p_application_id => 100,
p_user_name => :P9999_USERNAME,
p_role_static_id => ('ADMINISTRATOR')
);
if l_is_admin then
apex_authorization.is_authorized
(p_authorization_name => 'Administration Rights');
return true;
else
return false;
end if;
end;