-- -- acs_group__member_p/3 -- create or replace function acs_group__member_p( p_party_id integer, p_group_id integer, p_cascade_membership boolean ) returns bool as $$ SELECT CASE WHEN p_cascade_membership = true then -- -- Direct and indirect memberships -- EXISTS ( select 1 from group_member_map where group_id = p_group_id and member_id = p_party_id ) ELSE -- -- Only direct memberships -- EXISTS ( select 1 from acs_rels rels where rels.rel_type = 'membership_rel' and rels.object_id_one = p_group_id and rels.object_id_two = p_party_id ) END; $$ language plpgsql;