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.8 -r1.25.2.9
--- openacs-4/packages/acs-subsite/tcl/group-procs.tcl 16 Sep 2005 14:20:24 -0000 1.25.2.8
+++ openacs-4/packages/acs-subsite/tcl/group-procs.tcl 24 Sep 2005 09:09:00 -0000 1.25.2.9
@@ -224,28 +224,36 @@
ad_proc -public group::get_id {
{-group_name:required}
+ {-subsite_id ""}
+ {-application_group_id ""}
} {
- Retrieve the group_id to a given group-name.
- Note: this WILL bomb if the group-name is not unique.
+ Retrieve the group_id to a given group-name. If you have more than one group with this name, it will return the first one it finds.
+ Keep that in mind when using this procedure.
@author Christian Langmann (C_Langmann@gmx.de)
+ @author Malte Sussdorff (openacs@sussdorff.de)
@creation-date 2005-06-09
@param group_name the name of the group to look for
+ @param subsite_id the ID of the subsite to search for the group name
+ @param application_group_id the ID of the application group to search for the group name
- @return the id of the group
+ @return the first group_id of the groups found for that group_name.
@error
} {
- return [util_memoize [list group::get_id_not_cached -group_name $group_name]]
+ return [util_memoize [list group::get_id_not_cached -group_name $group_name -subsite_id $subsite_id -application_group_id ""]]
}
ad_proc -private group::get_id_not_cached {
{-group_name:required}
+ {-subsite_id ""}
+ {-application_group_id ""}
} {
Retrieve the group_id to a given group-name.
@author Christian Langmann (C_Langmann@gmx.de)
+ @author Malte Sussdorff (openacs@sussdorff.de)
@creation-date 2005-06-09
@param group_name the name of the group to look for
@@ -254,7 +262,16 @@
@error
} {
- return [db_string get_group_id {} -default ""]
+ if {[exists_and_not_null subsite_id]} {
+ set application_group_id [application_group::group_id_from_package_id -package_id [ad_conn subsite_id]]
+ }
+
+ if {[exists_and_not_null application_group_id]} {
+ set group_ids [db_list get_group_id_with_application {}]
+ } else {
+ set group_ids [db_list get_group_id {}]
+ }
+ return [lindex $group_ids 0]
}
ad_proc -public group::get_members {
Index: openacs-4/packages/acs-subsite/tcl/group-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/Attic/group-procs.xql,v
diff -u -r1.6.2.4 -r1.6.2.5
--- openacs-4/packages/acs-subsite/tcl/group-procs.xql 16 Sep 2005 14:20:24 -0000 1.6.2.4
+++ openacs-4/packages/acs-subsite/tcl/group-procs.xql 24 Sep 2005 09:09:00 -0000 1.6.2.5
@@ -31,6 +31,19 @@
+
+
+
+ SELECT g.group_id
+ FROM acs_rels rels
+ INNER JOIN composition_rels comp ON
+ rels.rel_id = comp.rel_id
+ INNER JOIN groups g ON rels.object_id_two = g.group_id
+ WHERE rels.object_id_one = :application_group_id AND
+ g.group_name = :group_name
+
+
+