Index: openacs-4/packages/acs-subsite/tcl/group-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/group-procs.tcl,v diff -u -r1.25.2.2 -r1.25.2.3 --- openacs-4/packages/acs-subsite/tcl/group-procs.tcl 19 Jul 2005 07:00:37 -0000 1.25.2.2 +++ openacs-4/packages/acs-subsite/tcl/group-procs.tcl 27 Jul 2005 14:54:01 -0000 1.25.2.3 @@ -214,6 +214,62 @@ return $row($element) } +ad_proc -public group::get_members { + {-group_id:required} + {-type "party"} +} { + Get party_ids of all members from cache. + + @param type Type of members - party, person, user + + @see group::get_members_not_cached + @see group::flush_members_cache + + @author Timo Hentschel (timo@timohentschel.de) + @creation-date 2005-07-26 +} { + return [util_memoize [list group::get_members_not_cached -group_id $group_id -type $type]] +} + +ad_proc -private group::get_members_not_cached { + {-group_id:required} + {-type:required} +} { + Get party_ids of all members. + + @param type Type of members - party, person, user + + @see group::get_members + @see group::flush_members_cache + + @author Timo Hentschel (timo@timohentschel.de) + @creation-date 2005-07-26 +} { + switch $type { + party { set member_list [db_list group_members_party {}] } + person { set member_list [db_list group_members_person {}] } + user { set member_list [db_list group_members_user {}] } + } + + return $member_list +} + +ad_proc -private group::flush_members_cache { + {-group_id:required} +} { + Flush group members cache. + + @see group::get_members + @see group::get_members_not_cached + + @author Timo Hentschel (timo@timohentschel.de) + @creation-date 2005-07-26 +} { + util_memoize_flush "group::get_members_not_cached -group_id $group_id -type party" + util_memoize_flush "group::get_members_not_cached -group_id $group_id -type user" + util_memoize_flush "group::get_members_not_cached -group_id $group_id -type person" +} + ad_proc -public group::permission_p { { -user_id "" } { -privilege "read" } @@ -499,6 +555,7 @@ } relation_add -member_state $member_state $rel_type $group_id $user_id + flush_members_cache -group_id $group_id } @@ -524,4 +581,6 @@ relation_remove $rel_id } } + + flush_members_cache -group_id $group_id }