Index: openacs-4/packages/acs-subsite/lib/user-info.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/lib/user-info.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-subsite/lib/user-info.tcl 17 Sep 2003 14:47:04 -0000 1.5 +++ openacs-4/packages/acs-subsite/lib/user-info.tcl 18 Sep 2003 17:12:53 -0000 1.6 @@ -2,14 +2,15 @@ # Expects: # user_id:optional # return_url:optional +# edit_p:optional # -ad_maybe_redirect_for_registration +auth::require_login -account_status closed if { ![exists_and_not_null user_id] } { - set user_id [ad_conn user_id] + set user_id [ad_conn untrusted_user_id] } else { - permission::require_permission -object_id $user_id -privilege admin + permission::require_permission -object_id $user_id -privilege admin -party_id $user_id } if { ![exists_and_not_null return_url] } { @@ -20,19 +21,19 @@ acs_user::get -user_id $user_id -array user -include_bio -set authority_name [auth::authority::get_element -authority_id $user(authority_id) -element pretty_name] +set authority [auth::authority::get_element -authority_id $user(authority_id) -element pretty_name] set form_elms { username first_names last_name email screen_name url bio } foreach elm $form_elms { - set mode($elm) {} + set elm_mode($elm) {} } set read_only_elements [auth::sync::get_sync_elements -authority_id $user(authority_id)] foreach elm $read_only_elements { - set mode($elm) {display} + set elm_mode($elm) {display} } set first_element {} foreach elm $form_elms { - if { [empty_string_p $mode($elm)] } { + if { [empty_string_p $elm_mode($elm)] } { set first_element $elm break } @@ -41,14 +42,19 @@ set read_only_notice_p [expr [llength $read_only_elements] > 0] set edit_mode_p [expr ![empty_string_p [form::get_action user_info]]] -ad_form -name user_info -cancel_url $return_url -action $action_url -mode display -form { +set form_mode display +if { [exists_and_equal edit_p 1] } { + set form_mode edit +} + +ad_form -name user_info -cancel_url $return_url -action $action_url -mode $form_mode -form { {user_id:integer(hidden),optional} {return_url:text(hidden),optional {value $return_url}} } if { [llength [auth::authority::get_authority_options]] > 1 } { ad_form -extend -name user_info -form { - {authority_name:text(inform) + {authority:text(inform) {label "Authority"} } } @@ -57,41 +63,52 @@ ad_form -extend -name user_info -form { {username:text(text) {label "Username"} - {mode $mode(username)} + {mode $elm_mode(username)} } } } +# TODO: Use get_registration_form_elements ... + + ad_form -extend -name user_info -form { {first_names:text {label "First names"} {html {size 50}} - {mode $mode(first_names)} + {mode $elm_mode(first_names)} } {last_name:text {label "Last Name"} {html {size 50}} - {mode $mode(last_name)} + {mode $elm_mode(last_name)} } {email:text {label "Email"} {html {size 50}} - {mode $mode(email)} + {mode $elm_mode(email)} } - {screen_name:text,optional - {label "Screen name"} - {html {size 50}} - {mode $mode(screen_name)} - } +} + +if { ![string equal [acs_user::ScreenName] "none"] } { + ad_form -extend -name user_info -form [list \ + [list screen_name:text[ad_decode [acs_user::ScreenName] "solicit" ",optional" ""] \ + {label "Screen name"} \ + {html {size 50}} \ + {mode $elm_mode(screen_name)} \ + ]] +} + + +ad_form -extend -name user_info -form { {url:text,optional {label "Home Page"} {html {size 50}} - {mode $mode(url)} + {mode $elm_mode(url)} } {bio:text(textarea),optional {label "About yourself"} {html {rows 8 cols 60}} - {mode $mode(bio)} + {mode $elm_mode(bio)} {display_value {[ad_text_to_html -- $user(bio)]}} } } -on_request { @@ -102,7 +119,7 @@ set user_info(authority_id) $user(authority_id) set user_info(username) $user(username) foreach elm $form_elms { - if { [empty_string_p $mode($elm)] && [info exists $elm] } { + if { [empty_string_p $elm_mode($elm)] && [info exists $elm] } { set user_info($elm) [string trim [set $elm]] } } @@ -132,6 +149,10 @@ } } } -after_submit { + if { [string equal [ad_conn account_status] "closed"] } { + auth::verify_account_status + } + ad_returnredirect $return_url ad_script_abort }