-- This package implements the security policy on the database object
create or replace package body cms_security as
-- limits select statements based on the u_id, g_id and permitions columns
function select_sec(D1 varchar2, D2 varchar2) return varchar2 is
begin
return '((o_read=''Y'') or
(g_read=''Y'' and
sys_context(''cms_context'',''group_list'') like ''%|''||g_id||''|%'') or
(u_read=''Y'' and u_id=sys_context(''cms_context'',''user_id'')))';
end select_sec;
-- limits delete statements nobody delete rows
function delete_sec(D1 varchar2, D2 varchar2) return varchar2 is
begin
return '(1=2)';
end delete_sec;
-- limits update statements based on the u_id, g_id and perms columns
function admin_sec(D1 varchar2, D2 varchar2) return varchar2 is
begin
return '((o_admin=''Y'') or
(g_admin=''Y'' and
sys_context(''cms_context'',''group_list'') like ''%|''||g_id||''|%'') or
(u_admin=''Y'' and u_id=sys_context(''cms_context'',''user_id'')))';
end admin_sec;