oracle8.1.6
select
p.privilege,
cms_permission.permission_p (
:object_id, :user_id, p.privilege
) as is_granted
from
acs_privileges p
select
acs_object.name(:object_id) as obj_name,
pretty_name as perm_name
from
acs_privileges
where
privilege = :privilege
select
t.child_privilege as privilege,
lpad(' ', t.tree_level * 24, ' ') ||
NVL(p.pretty_name, t.child_privilege) as label,
cms_permission.permission_p(
:object_id, :grantee_id, t.child_privilege
) as permission_p,
cms_permission.permission_p (
:object_id, :grantee_id, t.privilege
) as parent_permission_p
from (
select privilege, child_privilege, level as tree_level
from acs_privilege_hierarchy
connect by privilege = prior child_privilege
start with privilege = 'cm_root'
) t, acs_privileges p
where
p.privilege = t.child_privilege
and (
cms_permission.has_grant_authority (
:object_id, :user_id, t.child_privilege
) = 't'
or
cms_permission.has_revoke_authority (
:object_id, :user_id, t.child_privilege, :grantee_id
) = 't'
)
begin
cms_permission.grant_permission (
item_id => :object_id,
holder_id => :user_id,
privilege => :privilege,
recepient_id => :grantee_id,
is_recursive => :pf_is_recursive
);
end;
begin
cms_permission.revoke_permission (
item_id => :object_id,
holder_id => :user_id,
privilege => :privilege,
revokee_id => :grantee_id,
is_recursive => :pf_is_recursive
);
end;