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;