Index: openacs-4/packages/contacts/www/admin/group-user-change.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/group-user-change.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/contacts/www/admin/group-user-change.tcl	1 Nov 2006 09:12:15 -0000	1.1
@@ -0,0 +1,40 @@
+ad_page_contract {
+
+    Toggle the permission for users to edit their own attributes of this group.
+
+    @author Matthew Geddert openacs@geddert.com
+    @creation-date 2004-07-28
+    @cvs-id $Id: group-user-change.tcl,v 1.1 2006/11/01 09:12:15 maltes Exp $
+
+} {
+    {group_id:integer,notnull}
+    {action:notnull}
+    {return_url "./"}
+} -validate {
+    action_valid -requires {action} {
+        if { [lsearch [list allow disallow] $action] < 0 } {
+            ad_complain "[_ contacts.lt_the_action_supplied_i]"
+        }
+    }
+}
+
+# First flush our cache for the contact::groups as we change something here
+util_memoize_flush contact::groups_list_not_cached
+
+set package_id [ad_conn package_id]
+
+switch $action {
+    allow {
+        db_dml allow_change {
+            update contact_groups set user_change_p = 't' where group_id = :group_id and package_id = :package_id
+        }
+    }
+    disallow {
+        db_dml disallow_change {
+            update contact_groups set user_change_p = 'f' where group_id = :group_id and package_id = :package_id
+        }
+    }
+}
+
+
+ad_returnredirect $return_url
Index: openacs-4/packages/contacts/www/admin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/admin/index.tcl,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/contacts/www/admin/index.tcl	18 Dec 2005 09:34:43 -0000	1.11
+++ openacs-4/packages/contacts/www/admin/index.tcl	1 Nov 2006 09:12:15 -0000	1.12
@@ -59,6 +59,17 @@
                 </else>
             }
         }
+        user_change {
+            label {User Change}
+            display_template {
+                <if @groups.user_change_p@>
+                  <a href="group-user-change?action=disallow&group_id=@groups.group_id@"><img src="/resources/acs-subsite/checkboxchecked.gif" border="0" height="13" width="13" alt="[_ contacts.True]"></a>
+                </if>
+                <else>
+                  <a href="group-user-change?action=allow&group_id=@groups.group_id@"><img src="/resources/acs-subsite/checkbox.gif" border="0" height="13" width="13" alt="[_ contacts.False]"></a>
+                </else>
+            }
+        }
         person_form {
             display_template {
                 <a href="@groups.ams_person_url@" class="button">[_ contacts.Person_Form]</a>
@@ -84,7 +95,7 @@
     }
 
 
-multirow create groups group_id group_name group_url ams_person_url ams_org_url member_count level mapped_p default_p categories_url edit_url
+multirow create groups group_id group_name group_url ams_person_url ams_org_url member_count level mapped_p default_p categories_url edit_url user_change_p
 
 set return_url [ad_conn url]
 foreach group [contact::groups -indent_with "..." -expand "all" -output "all" -privilege_required "admin" -all] {
@@ -94,6 +105,7 @@
     set level [lindex $group 3]
     set mapped_p [lindex $group 4]
     set default_p [lindex $group 5]
+    set user_change_p [lindex $group 6]
     set ams_person_url [ams::list::url \
                           -package_key "contacts" \
                           -object_type "person" \
@@ -113,7 +125,7 @@
     set edit_url [export_vars -base "/acs-lang/admin/edit-localized-message" {{package_key acs-translations} {locale "[ad_conn locale]"} {message_key "group_title_${group_id}"} {return_url [ad_return_url]}}]
 
     set categories_url [export_vars -base "/categories/cadmin/object-map" -url {{object_id $group_id}}]
-    multirow append groups [lindex $group 1] [lindex $group 0] "../?group_id=${group_id}" $ams_person_url $ams_org_url $member_count $level $mapped_p $default_p $categories_url $edit_url
+    multirow append groups [lindex $group 1] [lindex $group 0] "../?group_id=${group_id}" $ams_person_url $ams_org_url $member_count $level $mapped_p $default_p $categories_url $edit_url $user_change_p
 
 
 }