-- 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 -- Should have been added earlier, at least now we save the 4.6.3 - 5.0 upgrade create view all_users as select pa.*, pe.*, u.* from parties pa, persons pe, users u where pa.party_id = pe.person_id and pe.person_id = u.user_id; 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';