Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/dotlrn-create.sql,v diff -u -r1.19.2.1 -r1.19.2.2 --- openacs-4/packages/dotlrn/sql/oracle/dotlrn-create.sql 21 Feb 2004 02:36:51 -0000 1.19.2.1 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-create.sql 24 Feb 2004 19:56:29 -0000 1.19.2.2 @@ -38,4 +38,5 @@ @@ security-create.sql @@ user-extension-create.sql @@ custom-permissions.sql -@@ privacy-init.sql \ No newline at end of file +@@ privacy-init.sql +@@ privacy-package-create.sql Index: openacs-4/packages/dotlrn/sql/oracle/privacy-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/privacy-init.sql,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/dotlrn/sql/oracle/privacy-init.sql 21 Feb 2004 02:34:38 -0000 1.1.2.1 +++ openacs-4/packages/dotlrn/sql/oracle/privacy-init.sql 24 Feb 2004 19:56:29 -0000 1.1.2.2 @@ -92,33 +92,3 @@ and (r.rel_type = 'dotlrn_guest_rel' or r.rel_type = 'dotlrn_non_guest_rel') and r.object_id_one = acs.magic_object_id('registered_users'); - --- --- Provides extra checking to a simple view query, since Guest status is not --- yet used uniformly across OACS. --- -create or replace function dotlrn_guest_p ( - v_user_id in integer -) return char -as - v_count integer; - v_guest_p char(1); -begin - select count(*) into v_count from dotlrn_guest_status where user_id = v_user_id; - if v_count > 1 then - raise_application_error ( - -20000, - 'Guest status is multiply defined for user ' || v_user_id - ); - end if; - if v_count = 0 then - raise_application_error ( - -20000, - 'Guest status is not defined for user ' || v_user_id - ); - end if; - select guest_p into v_guest_p from dotlrn_guest_status where user_id = v_user_id; - return v_guest_p; -end; -/ -show errors Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/dotlrn/sql/oracle/privacy-package-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/dotlrn/sql/postgresql/dotlrn-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/postgresql/dotlrn-create.sql,v diff -u -r1.10.2.1 -r1.10.2.2 --- openacs-4/packages/dotlrn/sql/postgresql/dotlrn-create.sql 21 Feb 2004 02:36:51 -0000 1.10.2.1 +++ openacs-4/packages/dotlrn/sql/postgresql/dotlrn-create.sql 24 Feb 2004 19:56:29 -0000 1.10.2.2 @@ -38,3 +38,4 @@ \i user-extension-create.sql \i custom-permissions.sql \i privacy-init.sql +\i privacy-package-create.sql Index: openacs-4/packages/dotlrn/sql/postgresql/privacy-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/postgresql/privacy-init.sql,v diff -u -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/dotlrn/sql/postgresql/privacy-init.sql 21 Feb 2004 05:20:56 -0000 1.1.2.2 +++ openacs-4/packages/dotlrn/sql/postgresql/privacy-init.sql 24 Feb 2004 19:56:29 -0000 1.1.2.3 @@ -97,120 +97,3 @@ and (r.rel_type = 'dotlrn_guest_rel' or r.rel_type = 'dotlrn_non_guest_rel') and r.object_id_one = acs__magic_object_id('registered_users'); - --- --- Provides extra checking to a simple view query, since Guest status is not --- yet used uniformly across OACS. --- -create or replace function dotlrn_guest_p (integer) -returns char as ' -declare - v_user_id alias for $1; - v_count integer; - v_guest_p char(1); -begin - select count(*) into v_count from dotlrn_guest_status where user_id = v_user_id; - if v_count > 1 then - raise EXCEPTION ''-20000: Guest status is multiply defined for user %'', v_user_id; - end if; - if v_count = 0 then - raise EXCEPTION ''-20000: Guest status is not defined for user %'', v_user_id; - end if; - select guest_p into v_guest_p from dotlrn_guest_status where user_id = v_user_id; - return v_guest_p; -end;' language 'plpgsql'; - -create or replace function dotlrn_privacy__set_user_non_guest (integer) -returns integer as ' -declare - v_user_id alias for $1; - v_rel_id integer; - cur record; -begin - for cur in - select r.rel_id - from acs_rels r, - membership_rels m - where m.rel_id = r.rel_id - and (r.rel_type = ''dotlrn_guest_rel'' - or r.rel_type = ''dotlrn_non_guest_rel'') - and r.object_id_one = acs__magic_object_id(''registered_users'') - and r.object_id_two = v_user_id - loop - perform membership_rel__delete(cur.rel_id); - end loop; - v_rel_id := membership_rel__new( - null, - ''dotlrn_non_guest_rel'', - acs__magic_object_id(''registered_users''), - v_user_id, - ''approved'', - null, - null - ); - - return 0; -end;' language 'plpgsql'; - -create or replace function dotlrn_privacy__set_user_guest (integer) -returns integer as ' -declare - v_user_id alias for $1; - v_rel_id integer; - cur record; -begin - for cur in - select r.rel_id - from acs_rels r, - membership_rels m - where m.rel_id = r.rel_id - and (r.rel_type = ''dotlrn_guest_rel'' - or r.rel_type = ''dotlrn_non_guest_rel'') - and r.object_id_one = acs__magic_object_id(''registered_users'') - and r.object_id_two = v_user_id - loop - perform membership_rel__delete(cur.rel_id); - end loop; - v_rel_id := membership_rel__new( - null, - ''dotlrn_guest_rel'', - acs__magic_object_id(''registered_users''), - v_user_id, - ''approved'', - null, - null - ); - - return 0; -end;' language 'plpgsql'; - -create or replace function dotlrn_privacy__grant_rd_prv_dt_for_rel (integer,varchar) -returns integer as ' -declare - v_object_id alias for $1; - v_rel_type alias for $2; - v_segment_id integer; -begin - select segment_id into v_segment_id - from rel_segments - where group_id = acs__magic_object_id(''registered_users'') - and rel_type = v_rel_type; - perform acs_permission__grant_permission(v_object_id,v_segment_id,''read_private_data''); - return 0; -end;' language 'plpgsql'; - -create or replace function dotlrn_privacy__revoke_rd_prv_dt_for_rel (integer,varchar) -returns integer as ' -declare - v_object_id alias for $1; - v_rel_type alias for $2; - v_segment_id integer; -begin - select segment_id into v_segment_id - from rel_segments - where group_id = acs__magic_object_id(''registered_users'') - and rel_type = v_rel_type; - perform acs_permission__revoke_permission(v_object_id,v_segment_id,''read_private_data''); - return 0; -end;' language 'plpgsql'; - Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/dotlrn/sql/postgresql/privacy-package-create.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/dotlrn/tcl/privacy-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/privacy-procs-oracle.xql,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/dotlrn/tcl/privacy-procs-oracle.xql 21 Feb 2004 02:34:38 -0000 1.1.2.1 +++ openacs-4/packages/dotlrn/tcl/privacy-procs-oracle.xql 24 Feb 2004 19:56:30 -0000 1.1.2.2 @@ -5,64 +5,24 @@ - declare - v_rel_id integer; begin - for cur in (select r.rel_id from acs_rels r, - membership_rels m - where m.rel_id = r.rel_id - and (r.rel_type = 'dotlrn_guest_rel' - or r.rel_type = 'dotlrn_non_guest_rel') - and r.object_id_one = acs.magic_object_id('registered_users') - and r.object_id_two = :user_id) - loop - membership_rel.del(cur.rel_id); - end loop; - v_rel_id := membership_rel.new( - rel_type => 'dotlrn_non_guest_rel', - object_id_one => acs.magic_object_id('registered_users'), - object_id_two => :user_id, - member_state => 'approved' - ); + dotlrn_privacy.set_user_non_guest(:user_id); end; - declare - v_rel_id integer; begin - for cur in (select r.rel_id from acs_rels r, - membership_rels m - where m.rel_id = r.rel_id - and (r.rel_type = 'dotlrn_guest_rel' - or r.rel_type = 'dotlrn_non_guest_rel') - and r.object_id_one = acs.magic_object_id('registered_users') - and r.object_id_two = :user_id) - loop - membership_rel.del(cur.rel_id); - end loop; - v_rel_id := membership_rel.new( - rel_type => 'dotlrn_guest_rel', - object_id_one => acs.magic_object_id('registered_users'), - object_id_two => :user_id, - member_state => 'approved' - ); + dotlrn_privacy.set_user_guest(:user_id); end; - declare - v_segment_id integer; begin - select segment_id into v_segment_id - from rel_segments - where group_id = acs.magic_object_id('registered_users') - and rel_type = :rel_type; - acs_permission.${action}_permission(:object_id,v_segment_id,'read_private_data'); + dotlrn_privacy.${db_proc}(:object_id,:rel_type); end; Index: openacs-4/packages/dotlrn/tcl/privacy-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/privacy-procs-postgresql.xql,v diff -u -r1.1.2.3 -r1.1.2.4 --- openacs-4/packages/dotlrn/tcl/privacy-procs-postgresql.xql 21 Feb 2004 05:20:56 -0000 1.1.2.3 +++ openacs-4/packages/dotlrn/tcl/privacy-procs-postgresql.xql 24 Feb 2004 19:56:30 -0000 1.1.2.4 @@ -17,7 +17,7 @@ - select dotlrn_privacy__${action}_rd_prv_dt_for_rel(:object_id,:rel_type) + select dotlrn_privacy__${db_proc}(:object_id,:rel_type) Index: openacs-4/packages/dotlrn/tcl/privacy-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/privacy-procs.tcl,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/dotlrn/tcl/privacy-procs.tcl 21 Feb 2004 02:34:38 -0000 1.1.2.1 +++ openacs-4/packages/dotlrn/tcl/privacy-procs.tcl 24 Feb 2004 19:56:30 -0000 1.1.2.2 @@ -44,6 +44,11 @@ action should be "grant" or "revoke" rel_type should be "dotlrn_guest_rel" or "dotlrn_non_guest_rel" } { + if { [string equal $action "grant"] } { + set db_proc "grant_rd_prv_dt_to_rel" + } else { + set db_proc "revoke_rd_prv_dt_from_rel" + } db_exec_plsql set_read_private_data_for_rel {} } Index: openacs-4/packages/dotlrn/www/admin/user-edit-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/user-edit-oracle.xql,v diff -u -r1.8.6.1 -r1.8.6.2 --- openacs-4/packages/dotlrn/www/admin/user-edit-oracle.xql 21 Feb 2004 02:36:51 -0000 1.8.6.1 +++ openacs-4/packages/dotlrn/www/admin/user-edit-oracle.xql 24 Feb 2004 19:56:30 -0000 1.8.6.2 @@ -10,7 +10,7 @@ dotlrn_users.last_name, dotlrn_users.email, dotlrn_users.type, - dotlrn_guest_p(:user_id) as guest_p + dotlrn_privacy.guest_p(:user_id) as guest_p from dotlrn_users where dotlrn_users.user_id = :user_id Index: openacs-4/packages/dotlrn/www/admin/user-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/user-edit-postgresql.xql,v diff -u -r1.1.6.1 -r1.1.6.2 --- openacs-4/packages/dotlrn/www/admin/user-edit-postgresql.xql 21 Feb 2004 02:36:51 -0000 1.1.6.1 +++ openacs-4/packages/dotlrn/www/admin/user-edit-postgresql.xql 24 Feb 2004 19:56:30 -0000 1.1.6.2 @@ -10,7 +10,7 @@ dotlrn_users.last_name, dotlrn_users.email, dotlrn_users.type, - dotlrn_guest_p(:user_id) as guest_p + dotlrn_privacy__guest_p(:user_id) as guest_p from dotlrn_users where dotlrn_users.user_id = :user_id Index: openacs-4/packages/dotlrn/www/admin/users-chunk-large-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-large-oracle.xql,v diff -u -r1.14.2.1 -r1.14.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-large-oracle.xql 21 Feb 2004 02:36:51 -0000 1.14.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-large-oracle.xql 24 Feb 2004 19:56:30 -0000 1.14.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy.guest_p(dotlrn_users.user_id) as guest_p, acs_permission.permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type Index: openacs-4/packages/dotlrn/www/admin/users-chunk-large-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-large-postgresql.xql,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-large-postgresql.xql 21 Feb 2004 02:36:51 -0000 1.3.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-large-postgresql.xql 24 Feb 2004 19:56:30 -0000 1.3.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy__guest_p(dotlrn_users.user_id) as guest_p, acs_permission__permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type Index: openacs-4/packages/dotlrn/www/admin/users-chunk-medium-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-medium-oracle.xql,v diff -u -r1.15.2.1 -r1.15.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-medium-oracle.xql 21 Feb 2004 02:36:51 -0000 1.15.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-medium-oracle.xql 24 Feb 2004 19:56:30 -0000 1.15.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy.guest_p(dotlrn_users.user_id) as guest_p, acs_permission.permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type @@ -24,7 +24,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy.guest_p(dotlrn_users.user_id) as guest_p, acs_permission.permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type Index: openacs-4/packages/dotlrn/www/admin/users-chunk-medium-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-medium-postgresql.xql,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-medium-postgresql.xql 21 Feb 2004 02:36:51 -0000 1.3.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-medium-postgresql.xql 24 Feb 2004 19:56:30 -0000 1.3.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy__guest_p(dotlrn_users.user_id) as guest_p, acs_permission__permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type @@ -24,7 +24,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy__guest_p(dotlrn_users.user_id) as guest_p, acs_permission__permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type Index: openacs-4/packages/dotlrn/www/admin/users-chunk-small-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-small-oracle.xql,v diff -u -r1.15.2.1 -r1.15.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-small-oracle.xql 21 Feb 2004 02:36:51 -0000 1.15.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-small-oracle.xql 24 Feb 2004 19:56:30 -0000 1.15.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy.guest_p(dotlrn_users.user_id) as guest_p, acs_permission.permission_p(:root_object_id, dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type Index: openacs-4/packages/dotlrn/www/admin/users-chunk-small-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/users-chunk-small-postgresql.xql,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/dotlrn/www/admin/users-chunk-small-postgresql.xql 21 Feb 2004 02:36:51 -0000 1.3.2.1 +++ openacs-4/packages/dotlrn/www/admin/users-chunk-small-postgresql.xql 24 Feb 2004 19:56:30 -0000 1.3.2.2 @@ -9,7 +9,7 @@ dotlrn_users.first_names, dotlrn_users.last_name, dotlrn_users.email, - dotlrn_guest_p(dotlrn_users.user_id) as guest_p, + dotlrn_privacy__guest_p(dotlrn_users.user_id) as guest_p, acs_permission__permission_p(:root_object_id,dotlrn_users.user_id, 'admin') as site_wide_admin_p from dotlrn_users where dotlrn_users.type = :type