Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-external-profile-provider-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-external-profile-provider-create.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-external-profile-provider-create.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,56 @@ +-- +-- Implementation of the profile provider interface for dotLRN Externals. +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-external-profile-provider-create.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +declare + foo integer; +begin + + -- create the implementation + foo := acs_sc_impl.new( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_owner_name => 'dotlrn_external_profile_provider' + ); + + -- add the bindings to the method implementations + + -- name method + foo := acs_sc_impl.new_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'name', + impl_alias => 'dotlrn_external_profile_provider::name', + impl_pl => 'TCL' + ); + + -- prettyName method + foo := acs_sc_impl.new_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'prettyName', + impl_alias => 'dotlrn_external_profile_provider::prettyName', + impl_pl => 'TCL' + ); + + -- render method + foo := acs_sc_impl.new_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'render', + impl_alias => 'dotlrn_external_profile_provider::render', + impl_pl => 'TCL' + ); + + -- bind this implementation to the interface it implements + acs_sc_binding.new( + contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider' + ); + +end; +/ +show errors Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-external-profile-provider-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-external-profile-provider-drop.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-external-profile-provider-drop.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,50 @@ +-- +-- Implementation of the profile provider interface for dotLRN Externals. +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-external-profile-provider-drop.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +declare + foo integer; +begin + + -- drop the binding between this implementation and the interface it + -- implements. + acs_sc_binding.delete( + contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider' + ); + + -- drop the bindings to the method implementations + + -- name method + foo := acs_sc_impl.delete_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'name' + ); + + -- prettyName method + foo := acs_sc_impl.delete_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'prettyName' + ); + + -- render method + foo := acs_sc_impl.delete_alias( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider', + impl_operation_name => 'render' + ); + + -- drop the implementation + acs_sc_impl.delete( + impl_contract_name => 'profile_provider', + impl_name => 'dotlrn_external_profile_provider' + ); + +end; +/ +show errors Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-create.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-create.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,24 @@ +-- +-- Create the dotLRN Externals package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-create.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +create table dotlrn_external_profile_rels ( + rel_id constraint dotlrn_ext_rels_rel_id_fk + references dotlrn_user_profile_rels (rel_id) + constraint dotlrn_ext_profile_rels_pk + primary key +); + +create table dotlrn_full_ext_profile_rels ( + rel_id constraint dotlrn_fe_prfl_rels_rel_fk + references dotlrn_full_user_profile_rels (rel_id) + constraint dotlrn_fe_prfl_rels_pk + primary key +); + +@@ dotlrn-external-profile-provider-create.sql +@@ dotlrn-externals-init.sql +@@ dotlrn-externals-package-create.sql Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-drop.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-drop.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,13 @@ +-- +-- Drop the dotLRN Externals package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-drop.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +@@ dotlrn-externals-package-drop.sql +@@ dotlrn-externals-sanitize.sql +@@ dotlrn-external-profile-provider-drop.sql + +drop table dotlrn_full_ext_profile_rels; +drop table dotlrn_external_profile_rels; Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-init.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-init.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,105 @@ +-- +-- Initialize the dotLRN Externals package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-init.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +declare + foo integer; + group_id integer; + dotlrn_users_group_id integer; +begin + + acs_rel_type.create_type( + rel_type => 'dotlrn_external_profile_rel', + supertype => 'dotlrn_user_profile_rel', + pretty_name => 'dotLRN External Profile Membership', + pretty_plural => 'dotLRN External Profile Memberships', + package_name => 'dotlrn_external_profile_rel', + table_name => 'dotlrn_external_profile_rels', + id_column => 'rel_id', + object_type_one => 'profiled_group', + role_one => null, + min_n_rels_one => 0, + max_n_rels_one => null, + object_type_two => 'user', + role_two => null, + min_n_rels_two => 0, + max_n_rels_two => 1 + ); + + select min(impl_id) + into foo + from acs_sc_impls + where impl_name = 'dotlrn_external_profile_provider'; + + group_id := profiled_group.new( + profile_provider => foo, + group_name => 'dotLRN Externals' + ); + + insert + into dotlrn_user_types + (type, pretty_name, group_id) + values + ('external', 'External', group_id); + + foo := rel_segment.new( + segment_name => 'dotLRN Profiled Externals', + group_id => group_id, + rel_type => 'dotlrn_external_profile_rel' + ); + + select group_id + into dotlrn_users_group_id + from groups + where group_name = 'dotLRN Users'; + + foo := composition_rel.new( + object_id_one => dotlrn_users_group_id, + object_id_two => group_id + ); + +end; +/ +show errors + +declare + foo integer; +begin + + acs_rel_type.create_type( + rel_type => 'dotlrn_full_external_profile_rel', + supertype => 'dotlrn_full_user_profile_rel', + pretty_name => 'dotLRN Full External Profile Membership', + pretty_plural => 'dotLRN Full External Profile Memberships', + package_name => 'dotlrn_full_ext_profile_rel', + table_name => 'dotlrn_full_ext_profile_rels', + id_column => 'rel_id', + object_type_one => 'profiled_group', + role_one => null, + min_n_rels_one => 0, + max_n_rels_one => null, + object_type_two => 'user', + role_two => null, + min_n_rels_two => 0, + max_n_rels_two => 1 + ); + + select min(group_id) + into foo + from profiled_groups + where profile_provider = (select min(impl_id) + from acs_sc_impls + where impl_name = 'dotlrn_external_profile_provider'); + + foo := rel_segment.new( + segment_name => 'dotLRN Full Profiled Externals', + group_id => foo, + rel_type => 'dotlrn_full_external_profile_rel' + ); + +end; +/ +show errors Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-package-create.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-package-create.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,174 @@ +-- +-- Create the External package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-package-create.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +create or replace package dotlrn_external_profile_rel +as + function new ( + rel_id in dotlrn_external_profile_rels.rel_id%TYPE default null, + id in dotlrn_user_profile_rels.id%TYPE default null, + rel_type in acs_rels.rel_type%TYPE default 'dotlrn_external_profile_rel', + group_id in groups.group_id%TYPE default null, + user_id in users.user_id%TYPE, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return dotlrn_user_profile_rels.rel_id%TYPE; + + procedure delete ( + rel_id in dotlrn_external_profile_rels.rel_id%TYPE + ); + +end; +/ +show errors + +create or replace package body dotlrn_external_profile_rel +as + function new ( + rel_id in dotlrn_external_profile_rels.rel_id%TYPE default null, + id in dotlrn_user_profile_rels.id%TYPE default null, + rel_type in acs_rels.rel_type%TYPE default 'dotlrn_external_profile_rel', + group_id in groups.group_id%TYPE default null, + user_id in users.user_id%TYPE, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return dotlrn_user_profile_rels.rel_id%TYPE + is + v_rel_id dotlrn_user_profile_rels.rel_id%TYPE; + v_group_id groups.group_id%TYPE; + begin + if group_id is null then + select min(group_id) + into v_group_id + from profiled_groups + where profile_provider = (select min(impl_id) + from acs_sc_impls + where impl_name = 'dotlrn_external_profile_provider'); + else + v_group_id := group_id; + end if; + + v_rel_id := dotlrn_user_profile_rel.new( + rel_id => rel_id, + id => id, + rel_type => rel_type, + group_id => v_group_id, + user_id => user_id, + creation_user => creation_user, + creation_ip => creation_ip + ); + + insert + into dotlrn_external_profile_rels + (rel_id) + values + (v_rel_id); + + return v_rel_id; + end; + + procedure delete ( + rel_id in dotlrn_external_profile_rels.rel_id%TYPE + ) + is + begin + delete + from dotlrn_external_profile_rels + where rel_id = dotlrn_external_profile_rel.delete.rel_id; + + dotlrn_user_profile_rel.delete(rel_id); + end; + +end; +/ +show errors + +create or replace package dotlrn_full_ext_profile_rel +as + function new ( + rel_id in dotlrn_full_ext_profile_rels.rel_id%TYPE default null, + portal_id in dotlrn_full_user_profile_rels.portal_id%TYPE, + theme_id in dotlrn_full_user_profile_rels.theme_id%TYPE default null, + id in dotlrn_user_profile_rels.id%TYPE default null, + rel_type in acs_rels.rel_type%TYPE default 'dotlrn_full_external_profile_rel', + group_id in groups.group_id%TYPE default null, + user_id in users.user_id%TYPE, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return dotlrn_full_user_profile_rels.rel_id%TYPE; + + procedure delete ( + rel_id in dotlrn_full_ext_profile_rels.rel_id%TYPE + ); + +end; +/ +show errors + +create or replace package body dotlrn_full_ext_profile_rel +as + function new ( + rel_id in dotlrn_full_ext_profile_rels.rel_id%TYPE default null, + portal_id in dotlrn_full_user_profile_rels.portal_id%TYPE, + theme_id in dotlrn_full_user_profile_rels.theme_id%TYPE default null, + id in dotlrn_user_profile_rels.id%TYPE default null, + rel_type in acs_rels.rel_type%TYPE default 'dotlrn_full_external_profile_rel', + group_id in groups.group_id%TYPE default null, + user_id in users.user_id%TYPE, + creation_user in acs_objects.creation_user%TYPE default null, + creation_ip in acs_objects.creation_ip%TYPE default null + ) return dotlrn_full_user_profile_rels.rel_id%TYPE + is + v_rel_id dotlrn_full_user_profile_rels.rel_id%TYPE; + v_group_id groups.group_id%TYPE; + begin + if group_id is null then + select min(group_id) + into v_group_id + from profiled_groups + where profile_provider = (select min(impl_id) + from acs_sc_impls + where impl_name = 'dotlrn_external_profile_provider'); + else + v_group_id := group_id; + end if; + + v_rel_id := dotlrn_full_user_profile_rel.new( + rel_id => rel_id, + portal_id => portal_id, + theme_id => theme_id, + id => id, + rel_type => rel_type, + group_id => v_group_id, + user_id => user_id, + creation_user => creation_user, + creation_ip => creation_ip + ); + + insert + into dotlrn_full_ext_profile_rels + (rel_id) + values + (v_rel_id); + + return v_rel_id; + end; + + procedure delete ( + rel_id in dotlrn_full_ext_profile_rels.rel_id%TYPE + ) + is + begin + delete + from dotlrn_full_ext_profile_rels + where rel_id = dotlrn_full_ext_profile_rel.delete.rel_id; + + dotlrn_full_user_profile_rel.delete(rel_id); + end; + +end; +/ +show errors Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-package-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-package-drop.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-package-drop.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,9 @@ +-- +-- Create the dotLRN Externals package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-package-drop.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +drop package dotlrn_full_ext_profile_rel; +drop package dotlrn_external_profile_rel; Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-sanitize.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-externals-sanitize.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-externals-sanitize.sql 13 Mar 2002 18:00:38 -0000 1.1 @@ -0,0 +1,65 @@ +-- +-- Sanitize the dotLRN External package +-- +-- @author yon@openforce.net +-- @version $Id: dotlrn-externals-sanitize.sql,v 1.1 2002/03/13 18:00:38 yon Exp $ +-- + +declare + foo integer; +begin + + select min(segment_id) + into foo + from rel_segments + where segment_name = 'dotLRN Full Profiled Externals'; + + rel_segment.delete( + segment_id => foo + ); + + acs_rel_type.drop_type( + rel_type => 'dotlrn_full_external_profile_rel', + cascade_p => 't' + ); + +end; +/ +show errors + +declare + foo integer; +begin + + select min(segment_id) + into foo + from rel_segments + where segment_name = 'dotLRN Profiled Externals'; + + rel_segment.delete( + segment_id => foo + ); + + select min(group_id) + into foo + from profiled_groups + where profile_provider = (select min(impl_id) + from acs_sc_impls + where impl_name = 'dotlrn_external_profile_provider'); + + delete + from dotlrn_user_types + where group_id = foo; + + profiled_group.delete( + group_id => foo + ); + + acs_rel_type.drop_type( + rel_type => 'dotlrn_external_profile_rel', + cascade_p => 't' + ); + +end; +/ +show errors Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-users-create.sql,v diff -u -r1.9 -r1.10 --- openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-create.sql 8 Feb 2002 20:50:56 -0000 1.9 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-create.sql 13 Mar 2002 18:00:38 -0000 1.10 @@ -75,3 +75,6 @@ -- create students @@ dotlrn-students-create.sql + +-- create external users +@@ dotlrn-externals-create.sql Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/Attic/dotlrn-users-drop.sql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-drop.sql 8 Feb 2002 20:50:56 -0000 1.1 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-users-drop.sql 13 Mar 2002 18:00:38 -0000 1.2 @@ -5,6 +5,9 @@ -- @version $Id$ -- +-- drop external users +@@ dotlrn-externals-drop.sql + -- drop students @@ dotlrn-students-drop.sql