Index: openacs-4/packages/dotlrn/www/members.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/members.tcl,v
diff -u -r1.27 -r1.28
--- openacs-4/packages/dotlrn/www/members.tcl 7 Oct 2007 22:36:56 -0000 1.27
+++ openacs-4/packages/dotlrn/www/members.tcl 9 Nov 2008 23:29:23 -0000 1.28
@@ -32,10 +32,13 @@
set community_id [dotlrn_community::get_community_id]
set spam_p [dotlrn::user_can_spam_community_p -user_id [ad_get_user_id] -community_id $community_id]
set approval_policy_p [string eq [group::join_policy -group_id $community_id] "needs approval"]
+set subcomm_p [dotlrn_community::subcommunity_p -community_id $community_id]
set referer [ns_conn url]
set return_url "[ns_conn url]?[ns_conn query]"
+set csv_p [exists_and_not_null csv]
+
set site_wide_admin_p [permission::permission_p -object_id [acs_magic_object security_context_root] -privilege admin]
if {!$site_wide_admin_p} {
@@ -44,19 +47,6 @@
set admin_p 1
}
-# make it so that only course admins
-# and site wide admins can read this page
-# if { !$admin_p } {
-# ad_return_forbidden "Permission Denied" "
-# You don't have permission to view this page.
-#
"
-# ad_script_abort
-#}
-
-if {$admin_p} {
- set add_member_url [export_vars -base user-add { {can_browse_p 1} {read_private_data_p t} {referer $return_url} }]
-}
-
if {![exists_and_not_null referer]} {
if {[string equal $admin_p t] == 1} {
set referer "one-community-admin"
@@ -65,122 +55,108 @@
}
}
-set bio_attribute_id [db_string bio_attribute_id {
- select attribute_id
- from acs_attributes
- where object_type = 'person'
- and attribute_name = 'bio'
-}]
-
# Actions for Removing Members according to their role
set rel_types [dotlrn_community::get_roles -community_id $community_id]
set bulk_actions ""
set bulk_actions_export_vars ""
set actions ""
-if {$admin_p} {
+if {$admin_p && !$csv_p} {
set bulk_actions [list "[_ dotlrn.Drop_Membership]" "deregister" "[_ dotlrn.Drop_Membership]"]
set bulk_actions_export_vars [list "user_id" "referer" "reset"]
- set actions [list "CSV" "members?csv=yes" "[_ dotlrn.Comma_Separated_Values]"]
+
+ if { !$subcomm_p } {
+ lappend actions [_ dotlrn.Create_and_add_a_member] [export_vars -base user-add { {can_browse_p 1} {read_private_data_p t} {referer $return_url} }] [_ dotlrn.Create_and_add_a_member]
+ }
+
+ if { $spam_p } {
+ lappend actions [_ dotlrn.Email_Members] [export_vars -base "spam-recipients" {community_id}] [_ dotlrn.Email_Members]
+ }
+
+ lappend actions "CSV" "members?csv=yes" [_ dotlrn.Export_members_list_to_CSV]
+
foreach role $rel_types {
- # lappend actions "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]" "members?reset=1&reltype=[lindex $role 0]" "[lang::util::localize [lindex $role 2]]"
- lappend actions "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]" "member-confirm?reset=1&reltype=[lindex $role 0]" "[lang::util::localize [lindex $role 2]]"
+ set action_label "[_ dotlrn.Remove_all] [lang::util::localize [lindex $role 3]]"
+ lappend actions $action_label "member-confirm?reset=1&reltype=[lindex $role 0]" $action_label
}
}
# Set the elements list
set elm_list {
- portrait {
- label ""
- html "align right"
- display_template {
-
-
-
-
-
-
-
Update bio
-
-
- }
- } last_name {
- label "[_ acs-subsite.Last_name]"
- html "align left"
- display_template {
- @members.last_name;noquote@
- }
- } first_names {
- label "[_ acs-subsite.First_names]"
- html "align left"
- display_template {
- @members.first_names@
- }
- } email {
- label "[_ dotlrn.Email_1]"
- html "align left"
- display_template {
- @members.email@
- }
- } role {
- label "[_ dotlrn.Role]"
- html "align left"
- }
+ portrait {
+ label ""
+ html "align right"
+ display_template {
+
+
+
+
+
+ }
+ hide_p $csv_p
+ } last_name {
+ label "[_ acs-subsite.Last_name]"
+ html "align left"
+ display_template {
+ @members.last_name;noquote@
+ }
+ } first_names {
+ label "[_ acs-subsite.First_names]"
+ html "align left"
+ display_template {
+ @members.first_names@
+ }
+ } email {
+ label "[_ dotlrn.Email_1]"
+ html "align left"
+ display_template {@members.email_pretty;noquote@}
+ } role {
+ label "[_ dotlrn.Role]"
+ html "align left"
+ }
}
-if {$admin_p} {
+if {$admin_p && !$csv_p} {
lappend elm_list {action} {
- label "[_ dotlrn.Actions]"
- html "align left"
- display_template {
-
- #dotlrn.Drop_Membership# |
- #dotlrn.User_Admin_Page#
-
- }
- }
+ label "[_ dotlrn.Actions]"
+ html "align left"
+ display_template {
+
+ #dotlrn.Drop_Membership# |
+ #dotlrn.User_Admin_Page#
+
+ }
+ }
}
# Build the list-builder list
template::list::create -name members -multirow members -key user_id -actions $actions -bulk_actions $bulk_actions -bulk_action_export_vars $bulk_actions_export_vars -elements $elm_list -orderby {
- last_name {orderby last_name}
- first_names {orderby first_names}
- email {orderby email}
- role {orderby role}
+ last_name {orderby last_name}
+ first_names {orderby first_names}
+ email {orderby email}
+ role {orderby role}
} -selected_format csv -formats {
- csv { output csv }
+ csv { output csv }
}
set orderby [template::list::orderby_clause -name "members" -orderby]
set member_page [acs_community_member_page]
-db_multirow -extend { update_bio_p member_url member_referer } members select_current_members {} {
+db_multirow -extend { member_url member_referer email_pretty } members select_current_members {} {
+
+ set email_pretty [email_image::get_user_email -user_id $user_id -return_url $return_url]
set member_url "$member_page?user_id=$user_id"
set member_referer $referer
- set update_bio_p $admin_p
set role [dotlrn_community::get_role_pretty_name -community_id $community_id -rel_type $rel_type]
}
-if { [exists_and_not_null csv] } {
+if { $csv_p } {
template::list::write_output -name members
}
-# # Bulk action User Admin Page
-# # Depending on the community_type, we have allowable rel_types
-# set rel_types [dotlrn_community::get_roles -community_id $community_id]
-# set selection ""
-# set size [multirow size members]
-# if { $size > 0 } {
-# multirow append members "" "" "" "" "" $selection
-# }
-
set user_ids ""
db_multirow -extend { member_url pending_user_referer } pending_users select_pending_users {} {
set role [dotlrn_community::get_role_pretty_name -community_id $community_id -rel_type $rel_type]
@@ -192,49 +168,47 @@
if {$admin_p} {
if { [template::multirow size pending_users] > 0 } {
- set pend_actions [list "[_ dotlrn.Approve_all]" "approve?${user_ids}referer=$referer" "[_ dotlrn.Approve_all]" \
- "[_ dotlrn.Reject_all]" "reject?${user_ids}referer=$referer" "[_ dotlrn.Reject_all]"]
+ set pend_actions [list "[_ dotlrn.Approve_all]" "approve?${user_ids}referer=$referer" "[_ dotlrn.Approve_all]" \
+ "[_ dotlrn.Reject_all]" "reject?${user_ids}referer=$referer" "[_ dotlrn.Reject_all]"]
} else {
- set pend_actions ""
+ set pend_actions ""
}
} else {
set pend_actions ""
}
template::list::create -name pending_users -multirow pending_users -key user_id -actions $pend_actions -elements {
last_name {
- label "[_ acs-subsite.Last_name]"
- html "align left"
- display_template {
- @pending_users.last_name;noquote@
- }
+ label "[_ acs-subsite.Last_name]"
+ html "align left"
+ display_template {
+ @pending_users.last_name;noquote@
+ }
} first_names {
- label "[_ acs-subsite.First_names]"
- html "align left"
- display_template {
- @pending_users.first_names@
- }
+ label "[_ acs-subsite.First_names]"
+ html "align left"
+ display_template {
+ @pending_users.first_names@
+ }
} email {
- label "[_ dotlrn.Email_1]"
- html "align left"
- display_template {
- @pending_users.email@
- }
+ label "[_ dotlrn.Email_1]"
+ html "align left"
+ display_template {
+ @pending_users.email@
+ }
} role {
- label "[_ dotlrn.Role]"
- html "align left"
+ label "[_ dotlrn.Role]"
+ html "align left"
} action {
- label "[_ dotlrn.Actions]"
- html "align left"
- display_template {
- #dotlrn.Approve# |
- #dotlrn.Reject#
- }
+ label "[_ dotlrn.Actions]"
+ html "align left"
+ display_template {
+ #dotlrn.Approve# |
+ #dotlrn.Reject#
+ }
}
}
-set subcomm_p [dotlrn_community::subcommunity_p -community_id $community_id]
-
if {$subcomm_p} {
form create parent_users_form
@@ -247,29 +221,29 @@
}
if {[form is_valid parent_users_form]} {
- set user_ids_to_email [list]
+ set user_ids_to_email [list]
foreach user $parent_user_list {
set rel [element get_value parent_users_form "selected_user.[ns_set get $user user_id]"]
if {![string match $rel none]} {
dotlrn_community::add_user -rel_type $rel $community_id [ns_set get $user user_id]
- lappend user_ids_to_email [ns_set get $user user_id]
+ lappend user_ids_to_email [ns_set get $user user_id]
}
}
- if {[llength $user_ids_to_email]} {
- set return_url [export_vars -base member-email-confirm {{user_id $user_ids_to_email} community_id}]
- } else {
- set return_url [ns_conn url]
- }
+ if {[llength $user_ids_to_email]} {
+ set return_url [export_vars -base member-email-confirm {{user_id $user_ids_to_email} community_id}]
+ } else {
+ set return_url [ns_conn url]
+ }
ad_returnredirect $return_url
}
}
if {[exists_and_not_null reset] && [exists_and_not_null reltype]} {
-set result ""
+ set result ""
db_multirow reset_members select_members {} {
- rp_form_put user_id $member_id
+ rp_form_put user_id $member_id
}
rp_form_put referer "one-community"
rp_form_put community_id $community_id