Index: openacs-4/packages/dotlrn/www/admin/user-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/www/admin/user-edit.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/dotlrn/www/admin/user-edit.tcl 1 Feb 2002 22:30:01 -0000 1.7 +++ openacs-4/packages/dotlrn/www/admin/user-edit.tcl 8 Feb 2002 20:50:57 -0000 1.8 @@ -1,5 +1,5 @@ ad_page_contract { - Edit a User + Edit a dotLRN user @author Ben Adida (ben@openforce.net) @author yon (yon@openforce.net) @@ -10,6 +10,11 @@ user_id } +set context_bar {{users Users} {Edit}} +set dotlrn_package_id [dotlrn::get_package_id] + +db_1row select_user_info {} + form create edit_user element create edit_user user_id \ @@ -18,150 +23,58 @@ -widget hidden \ -value $user_id -element create edit_user type_id \ +element create edit_user id \ + -label "ID" \ + -datatype text \ + -widget text \ + -value $id \ + -optional + +element create edit_user type \ -label "User Type" \ -datatype text \ -widget select \ - -options [dotlrn::get_user_types] + -options [dotlrn::get_user_types] \ + -value $type -element create edit_user rel_type \ - -label "Access" \ +element create edit_user access_level \ + -label "Access Level" \ -datatype text \ -widget select \ - -options {{{limited access} dotlrn_user_rel} {{full access} dotlrn_full_user_rel}} + -options {{"Full Access" "full"} {"Limited Access" "limited"}} \ + -value $access_level element create edit_user read_private_data_p \ -label "Can Access Private Information?" \ -datatype text \ -widget select \ - -options {{yes t} {no f}} + -options {{"Yes" "t"} {"No" "f"}} \ + -value $read_private_data_p element create edit_user referer \ -label "Referer" \ -datatype text \ -widget hidden \ -value $referer -# Create a form of hidden vars -form create verif_edit_user +if {[form is_valid edit_user]} { + form get_values edit_user \ + user_id id type access_level read_private_data_p referer -element create verif_edit_user user_id \ - -label "User ID" \ - -datatype integer \ - -widget hidden - -element create verif_edit_user type_id \ - -label "Type ID" \ - -datatype integer \ - -widget hidden - -element create verif_edit_user rel_type \ - -label "Relationship Type" \ - -datatype text \ - -widget hidden - -element create verif_edit_user read_private_data_p \ --label "Can Read Private Data?" \ - -datatype text \ - -widget hidden - -element create verif_edit_user referer \ - -label "Referer" \ - -datatype text \ - -widget hidden \ - -value $referer - -set context_bar {{users Users} {Edit}} -set dotlrn_package_id [dotlrn::get_package_id] - -# We verified everything, now we make the change -if {[form is_valid verif_edit_user]} { - form get_values verif_edit_user \ - user_id type_id rel_type read_private_data_p referer - - set rel_id [db_string select_rel_id { - select rel_id - from dotlrn_users - where user_id = :user_id - }] - db_transaction { # remove the user dotlrn::user_remove $user_id # add the user - dotlrn::user_add -rel_type $rel_type -user_id $user_id -type_id $type_id + dotlrn::user_add -id $id -type $type -access_level $access_level -user_id $user_id # Update permissions acs_privacy::set_user_read_private_data -user_id $user_id -object_id [dotlrn::get_package_id] -value $read_private_data_p } - ad_returnredirect $referer - ad_script_abort -} - - -if {[form is_valid edit_user]} { - form get_values edit_user \ - user_id type_id rel_type read_private_data_p referer - - # Do something - set new_rel_type $rel_type - - db_1row select_limited_user_info { - select first_names, - last_name, - object_type as old_rel_type - from dotlrn_users, - acs_objects - where dotlrn_users.user_id = :user_id - and dotlrn_users.rel_id = acs_objects.object_id - } - - set old_rel_type [db_string select_rel_type { - select 'dotlrn_full_user_rel' - from dual - where exists (select 1 - from dotlrn_full_users - where user_id = :user_id) - } -default "dotlrn_user_rel"] - - if {$new_rel_type == $old_rel_type} { - # Simply update things - db_transaction { - # Update straight user info - db_dml update_user {} - - # Update permissions - acs_privacy::set_user_read_private_data -user_id $user_id -object_id [dotlrn::get_package_id] -value $read_private_data_p - } - } else { - # Warn about the change - element set_properties verif_edit_user user_id -value $user_id - element set_properties verif_edit_user type_id -value $type_id - element set_properties verif_edit_user rel_type -value $rel_type - element set_properties verif_edit_user read_private_data_p -value $read_private_data_p - - ad_return_template "user-edit-verify" - return - } - # redirect ad_returnredirect $referer ad_script_abort } -db_1row select_user_info {} - -# set some values -element set_properties edit_user type_id -value $type_id - -if {$limited_access_p == "t"} { - element set_properties edit_user rel_type -value dotlrn_user_rel -} else { - element set_properties edit_user rel_type -value dotlrn_full_user_rel -} - -element set_properties edit_user read_private_data_p -value $read_private_data_p - ad_return_template