Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.150.2.52 -r1.150.2.53 --- openacs-4/packages/acs-kernel/acs-kernel.info 7 Feb 2023 17:50:32 -0000 1.150.2.52 +++ openacs-4/packages/acs-kernel/acs-kernel.info 10 Feb 2023 19:07:31 -0000 1.150.2.53 @@ -9,15 +9,15 @@ f t - + OpenACS Core Team Routines and data models providing the foundation for OpenACS-based Web services. 2021-09-15 OpenACS The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, parties and the supporting PL/SQL and PL/pgSQL procedures. 3 - + Index: openacs-4/packages/acs-kernel/sql/oracle/groups-body-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/groups-body-create.sql,v diff -u -r1.18.2.1 -r1.18.2.2 --- openacs-4/packages/acs-kernel/sql/oracle/groups-body-create.sql 13 Feb 2022 15:45:06 -0000 1.18.2.1 +++ openacs-4/packages/acs-kernel/sql/oracle/groups-body-create.sql 10 Feb 2023 19:07:31 -0000 1.18.2.2 @@ -596,6 +596,16 @@ where rel_id = unapprove.rel_id; end; + procedure expire ( + rel_id in membership_rels.rel_id%TYPE + ) + is + begin + update membership_rels + set member_state = 'expired' + where rel_id = unapprove.rel_id; + end; + procedure deleted ( rel_id in membership_rels.rel_id%TYPE ) Index: openacs-4/packages/acs-kernel/sql/oracle/groups-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/groups-create.sql,v diff -u -r1.13.2.3 -r1.13.2.4 --- openacs-4/packages/acs-kernel/sql/oracle/groups-create.sql 22 Jul 2022 17:37:25 -0000 1.13.2.3 +++ openacs-4/packages/acs-kernel/sql/oracle/groups-create.sql 10 Feb 2023 19:07:31 -0000 1.13.2.4 @@ -478,6 +478,10 @@ rel_id in membership_rels.rel_id%TYPE ); + procedure expire ( + rel_id in membership_rels.rel_id%TYPE + ); + procedure del ( rel_id in membership_rels.rel_id%TYPE ); Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.10.1d16-5.10.1d17.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-kernel/sql/postgresql/groups-body-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/groups-body-create.sql,v diff -u -r1.36.2.5 -r1.36.2.6 --- openacs-4/packages/acs-kernel/sql/postgresql/groups-body-create.sql 14 Mar 2020 19:06:24 -0000 1.36.2.5 +++ openacs-4/packages/acs-kernel/sql/postgresql/groups-body-create.sql 10 Feb 2023 19:07:31 -0000 1.36.2.6 @@ -834,6 +834,30 @@ $$ LANGUAGE plpgsql; +-- procedure expire + + +-- added +select define_function_args('membership_rel__expire','rel_id'); + +-- +-- procedure membership_rel__expire/1 +-- +CREATE OR REPLACE FUNCTION membership_rel__expire( + expire__rel_id integer +) RETURNS integer AS $$ +DECLARE +BEGIN + update membership_rels + set member_state = 'expired' + where rel_id = expire__rel_id; + + return 0; +END; +$$ LANGUAGE plpgsql; + + + -- procedure deleted Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.10.1d16-5.10.1d17.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-tcl/acs-tcl.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/acs-tcl.info,v diff -u -r1.95.2.58 -r1.95.2.59 --- openacs-4/packages/acs-tcl/acs-tcl.info 8 Feb 2023 18:35:04 -0000 1.95.2.58 +++ openacs-4/packages/acs-tcl/acs-tcl.info 10 Feb 2023 19:07:31 -0000 1.95.2.59 @@ -9,7 +9,7 @@ f t - + OpenACS The Kernel Tcl API library. 2021-09-15 @@ -18,7 +18,7 @@ GPL version 2 3 - + Index: openacs-4/packages/acs-tcl/tcl/membership-rel-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/membership-rel-procs-oracle.xql,v diff -u -r1.5 -r1.5.16.1 --- openacs-4/packages/acs-tcl/tcl/membership-rel-procs-oracle.xql 4 Jun 2006 00:45:47 -0000 1.5 +++ openacs-4/packages/acs-tcl/tcl/membership-rel-procs-oracle.xql 10 Feb 2023 19:07:31 -0000 1.5.16.1 @@ -39,4 +39,9 @@ + + + begin membership_rel.expire(rel_id => :rel_id); end; + + Index: openacs-4/packages/acs-tcl/tcl/membership-rel-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/membership-rel-procs-postgresql.xql,v diff -u -r1.3 -r1.3.16.1 --- openacs-4/packages/acs-tcl/tcl/membership-rel-procs-postgresql.xql 4 Jun 2006 00:45:47 -0000 1.3 +++ openacs-4/packages/acs-tcl/tcl/membership-rel-procs-postgresql.xql 10 Feb 2023 19:07:31 -0000 1.3.16.1 @@ -39,4 +39,9 @@ + + + begin return membership_rel__expire(:rel_id); end; + + Index: openacs-4/packages/acs-tcl/tcl/membership-rel-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/membership-rel-procs.tcl,v diff -u -r1.11.2.2 -r1.11.2.3 --- openacs-4/packages/acs-tcl/tcl/membership-rel-procs.tcl 21 Jul 2020 14:02:08 -0000 1.11.2.2 +++ openacs-4/packages/acs-tcl/tcl/membership-rel-procs.tcl 10 Feb 2023 19:07:31 -0000 1.11.2.3 @@ -42,6 +42,7 @@ } "needs approval" { db_exec_plsql unapprove {} } "merged" { db_exec_plsql merge {} } + "expired" { db_exec_plsql expire {} } } # Record who changed the state @@ -103,6 +104,14 @@ change_state -rel_id $rel_id -state "needs approval" } + ad_proc -public expire { + {-rel_id:required} + } { + Expire a membership relation + } { + change_state -rel_id $rel_id -state "expired" + } + ad_proc -public get { {-rel_id:required} } { Index: openacs-4/packages/acs-tcl/tcl/test/test-membership-rel-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/test/test-membership-rel-procs.tcl,v diff -u -r1.7.2.1 -r1.7.2.2 --- openacs-4/packages/acs-tcl/tcl/test/test-membership-rel-procs.tcl 15 Feb 2021 17:53:27 -0000 1.7.2.1 +++ openacs-4/packages/acs-tcl/tcl/test/test-membership-rel-procs.tcl 10 Feb 2023 19:07:31 -0000 1.7.2.2 @@ -16,6 +16,7 @@ membership_rel::delete membership_rel::reject membership_rel::unapprove + membership_rel::expire membership_rel::change_state ::acs::test::user::create } \ @@ -72,6 +73,15 @@ aa_equals "Changed State to unapproved" \ $user(member_state) "needs approval" + #Try to change his state to expired + aa_log "We change the state to expired" + membership_rel::expire -rel_id $rel_id + acs_user::get -user_id $user_id -array user + + #Verifying if the state was changed + aa_equals "Changed State to expired" \ + $user(member_state) "expired" + #Try to change his state to deleted aa_log "We change the state to deleted" membership_rel::delete -rel_id $rel_id