私のアプリケーションでカスタム認可スキームを作成したいと考えています。 1. isAdmin 2. isStaff 3.内容isMemberoracle apexカスタム認可スキーム
ので、私はそれらのスキームを作成し、私も私が付与でき、アクセス制御ページから今APEX_APPLICATION_PRIV(管理者、スタッフ、メンバー)
に3つのエントリを作成しました権限スキームisMemberを持つページは、特権メンバーを持つ人だけに表示されるでしょうか?
私のアプリケーションでカスタム認可スキームを作成したいと考えています。 1. isAdmin 2. isStaff 3.内容isMemberoracle apexカスタム認可スキーム
ので、私はそれらのスキームを作成し、私も私が付与でき、アクセス制御ページから今APEX_APPLICATION_PRIV(管理者、スタッフ、メンバー)
に3つのエントリを作成しました権限スキームisMemberを持つページは、特権メンバーを持つ人だけに表示されるでしょうか?
私は、カスタムACLを持っているのではなく、あなたのACLにデフォルト(管理者、編集、ビュー)を使用するだけでは困惑していると思います。
デフォルトのACL承認方式(管理者、編集、ビュー)とまったく同じ認証スキーム(管理者、スタッフ、メンバー)を表すことはできませんでした。 Admin - 管理者、スタッフ編集、およびメンバービュー。多くの痛みを少なくするようだ。
Here is the oracle documentation.
編集:ここでは はACLによって作成されたデフォルトの認証スキーム「管理者」のために使用ブール値を返すPL/SQLコードです。あなたのケースでは
declare
l_setup_id number;
l_mode varchar2(50);
l_priv varchar2(50);
begin
if apex_application.is_custom_auth_page then
return true;
end if;
for c1 in (select id, application_mode
from apex_access_setup
where application_id = :app_id)
loop
l_setup_id := c1.id;
l_mode := c1.application_mode;
end loop;
if (l_mode = 'ALL') or (l_mode is null) then
return true;
end if;
for c1 in (select admin_privileges
from apex_access_control
where upper(admin_username) = upper(:app_user)
and setup_id = l_setup_id)
loop
l_priv := c1.admin_privileges;
end loop;
if nvl(l_priv,'x') = 'ADMIN' then return true; end if;
return false;
end;
私はあなただけで「isAdmin」(またはただし、あなたのDBでそれを指定)と「ADMIN」を置き換えることができます想像してみてください。次に、追加のPL/SQLファンクションを適切に戻して、スタッフとメンバにtrueまたはfalseを返します。
ページ/アイテムごとに1つの認可スキームしかないと思いますので、これを念頭に置いてください。デフォルトの認可スキームは、管理者が編集権限と表示権限を持つすべてのユーザーにアクセスできるようにすることで、これを処理します。編集権限を持つユーザーは、表示権限を持つユーザーすべてにアクセスできます。最後に、表示権限を持つユーザーは、表示権限を持つページまたは項目(または権限体系が指定されていないページ)にしかアクセスできません。