Index: openacs-4/packages/contacts/tcl/contacts-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contacts-procs-postgresql.xql,v diff -u -r1.31 -r1.32 --- openacs-4/packages/contacts/tcl/contacts-procs-postgresql.xql 30 Jun 2007 10:41:13 -0000 1.31 +++ openacs-4/packages/contacts/tcl/contacts-procs-postgresql.xql 22 Oct 2018 08:51:26 -0000 1.32 @@ -1,28 +1,20 @@ <?xml version="1.0"?> <queryset> -<fullquery name="contacts::default_group_not_cached.get_parent_subsite_id"> - <querytext> - select object_id - from site_nodes - where tree_level(tree_sortkey) < ( select tree_level(n2.tree_sortkey) from site_nodes n2 where n2.node_id = :node_id ) - and object_id in ( select package_id - from apm_packages - where package_key = 'acs-subsite' ) - order by tree_sortkey desc - limit 1 - </querytext> -</fullquery> - <fullquery name="contacts::default_groups_not_cached.get_child_contacts_instances"> <querytext> - select p.package_id - from site_nodes n, site_nodes n2, apm_packages p - where n2.node_id = (select coalesce(:parent_node_id, site_node__node_id('/', null))) - and n.tree_sortkey between n2.tree_sortkey and tree_right(n2.tree_sortkey) - and n.object_id = p.package_id - and p.package_key = 'contacts' - and (tree_level(n.tree_sortkey) - (select tree_level(n2.tree_sortkey) from site_nodes n2 where n2.node_id = (select coalesce(:parent_node_id, site_node__node_id('/', null))))) > 1; + select p.package_id + from apm_packages p right outer join + ( WITH RECURSIVE site_node_tree AS ( + select node_id, parent_id, object_id from site_nodes where node_id = :root_id + UNION ALL + select c.node_id, c.parent_id, c.object_id from site_node_tree tree, site_nodes as c + where c.parent_id = tree.node_id + ) + select * from site_node_tree n) site_map + on site_map.object_id = p.package_id + where package_key = 'contacts' + and (site_map.object_id is null or acs_permission__permission_p(site_map.object_id, :user_id, 'read') = 't') </querytext> </fullquery>