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.42 -r1.43
--- openacs-4/packages/acs-kernel/acs-kernel.info 3 Oct 2003 16:03:31 -0000 1.42
+++ openacs-4/packages/acs-kernel/acs-kernel.info 6 Oct 2003 13:16:11 -0000 1.43
@@ -7,13 +7,13 @@
t
t
-
+
Don Baccus
Routines and data models providing the foundation for OpenACS-based Web services.
2003-09-25
OpenACS
-
+
Index: openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql,v
diff -u -r1.21 -r1.22
--- openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql 10 Sep 2003 08:40:58 -0000 1.21
+++ openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql 6 Oct 2003 13:16:11 -0000 1.22
@@ -107,10 +107,21 @@
returns integer as '
declare
remove_user__user_id alias for $1;
+ v_rec record;
begin
- delete from users
- where user_id = remove_user__user_id;
+ delete
+ from acs_permissions
+ where grantee_id = remove_user__user_id;
+ for v_rec in select rel_id
+ from acs_rels
+ where object_id_two = remove_user__user_id
+ loop
+ perform acs_rel__delete(v_rec.rel_id);
+ end loop;
+
+ perform acs_user__delete(remove_user__user_id);
+
return 0;
end;' language 'plpgsql';
Index: openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d11-5.0d12.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d11-5.0d12.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.0d11-5.0d12.sql 6 Oct 2003 13:16:11 -0000 1.1
@@ -0,0 +1,27 @@
+-- Fixing bug 895 by making acs__remove_user do what the Oracle version already does, i.e.
+-- remove records referencing the user record before attempting to delete it.
+--
+-- @author Peter Marklund
+
+drop function acs__remove_user (integer);
+create function acs__remove_user (integer)
+returns integer as '
+declare
+ remove_user__user_id alias for $1;
+ v_rec record;
+begin
+ delete
+ from acs_permissions
+ where grantee_id = remove_user__user_id;
+
+ for v_rec in select rel_id
+ from acs_rels
+ where object_id_two = remove_user__user_id
+ loop
+ perform acs_rel__delete(v_rec.rel_id);
+ end loop;
+
+ perform acs_user__delete(remove_user__user_id);
+
+ return 0;
+end;' language 'plpgsql';