Index: openacs-4/packages/acs-admin/www/users/member-state-change.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/users/member-state-change.tcl,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-admin/www/users/member-state-change.tcl 19 Jun 2015 09:09:51 -0000 1.17 +++ openacs-4/packages/acs-admin/www/users/member-state-change.tcl 7 Aug 2017 23:47:45 -0000 1.18 @@ -8,9 +8,15 @@ } { user_id:naturalnum,notnull - {member_state "no_change"} - {email_verified_p:boolean "no_change"} - {return_url ""} + {member_state:trim} + {email_verified_p:boolean ""} + {return_url:localurl ""} +} -validate { + valid_member_state -requires member_state { + if {$member_state ni {approved banned deleted merged "needs approval" rejected}} { + ad_complain "invalid member_state '$member_state'" + } + } } -properties { context:onevalue export_vars:onevalue @@ -24,58 +30,45 @@ return } -set action "" - -switch $member_state { - "approved" { - set action "Approve $name" - set email_message "Your membership in [ad_system_name] has been approved. Please return to [ad_url]." - } - "banned" { - set action "Ban $name" - set email_message "You have been banned from [ad_system_name]." - } - "rejected" { - set action "Reject $name" - set email_message "Your account have been rejected from [ad_system_name]." - } - "deleted" { - set action "Delete $name" - set email_message "Your account have been deleted from [ad_system_name]." - } - "needs approval" { - set action "Require Admin Approval for $name" - set email_message "Your account at [ad_system_name] is awaiting approval from an administrator." - } -} - +# +# This page is used for state changes in the member_state, and as well +# on email confirm require and approve operations. +# switch $email_verified_p { "t" { - set action "Approve Email for $name" - set email_message "Your email in [ad_system_name] has been approved. Please return to [ad_url]." + set user_name $name + set url [ad_url] + set site_name [ad_system_name] + set action [lang::util::localize #acs-kernel.email_action_approved#] + set email_message [lang::util::localize #acs-kernel.email_mail_approved#] } "f" { - set action "Require Email from $name" - set email_message "Your email in [ad_system_name] needs approval. please go to [ad_url]/register/email-confirm" + set user_name $name + set url [ad_url]/register/email-confirm + set site_name [ad_system_name] + set action [lang::util::localize #acs-kernel.email_action_needs_approval#] + set email_message [lang::util::localize #acs-kernel.email_mail_needs_approval#] } + default { + set action [group::get_member_state_pretty -component action \ + -member_state $member_state \ + -user_name $name] + set email_message [group::get_member_state_pretty -component account_mail \ + -member_state $member_state \ + -site_name [ad_system_name] \ + -url [ad_url]] + } } -if {$action eq ""} { - ad_return_complaint 1 "Not valid action: You have not changed the user in any way" - return -} - if {[catch { acs_user::change_state -user_id $user_id -state $member_state switch $email_verified_p { "t" { - db_exec_plsql approve_email " - begin acs_user.approve_email ( user_id => :user_id ); end;" + db_exec_plsql approve_email {} } "f" { - db_exec_plsql unapprove_email " - begin acs_user.unapprove_email ( user_id => :user_id ); end;" + db_exec_plsql unapprove_email {} } } } errmsg]} { @@ -86,18 +79,21 @@ callback acs_admin::member_state_change -member_state $member_state -user_id $user_id set admin_user_id [ad_conn user_id] -set email_from [db_string admin_email "select email from parties where party_id = :admin_user_id"] -set subject "$action" +set email_from [db_string admin_email {select email from parties where party_id = :admin_user_id}] +set subject $action set message $email_message if {$return_url eq ""} { set return_url [export_vars -base /acs-admin/users/one {user_id}] -} else { - ad_returnredirect $return_url - ad_script_abort } set context [list [list "./" "Users"] "$action"] set export_vars [export_vars {email email_from subject message return_url}] ad_return_template + +# Local variables: +# mode: tcl +# tcl-indent-level: 4 +# indent-tabs-mode: nil +# End: