set olddb [ns_db gethandle acs32]
# NOTE: only migrates minimum: email, name, passwd, url
# for posting users
set selection [ns_db select $olddb "
select last_name, first_names, email, password, url,
user_id as old_user_id
from users
where user_id in (select distinct user_id from bboard)
"]
set n_tried_old 0
set new_user_sql "
select user_id as new_lookup_id, email from cc_users where email=:email"
set mapped_user_sql "
select old_user_id as old_map_id,
new_user_id as new_map_id
from migr_user_map where old_user_id=:old_user_id"
set nil [set new [set map [list]]]
db_transaction {
while { [ns_db getrow $olddb $selection] } {
set_variables_after_query
incr n_tried_old
if [db_0or1row tt $new_user_sql] {
if [db_0or1row r $mapped_user_sql] {
set new_id $new_map_id
set action "nil"
} else {
db_dml q "insert into migr_user_map
(old_user_id, new_user_id) values ($old_user_id, $new_lookup_id)"
set new_id $new_lookup_id
set action "map"
}
} else {
set new_created_id [ad_user_new $email $first_names $last_name $password "" "" $url "t" "approved" ""]
db_dml q "insert into migr_user_map
(old_user_id, new_user_id) values ($old_user_id, $new_created_id)"
# set new_created_id newtest
set new_id $new_created_id
set action "new"
}
lappend $action "
$old_user_id => $new_id:
$last_name, $first_names $email
"
append output "$action: $old_user_id => $new_id:
$last_name, $first_names $email
"
}
} on_error {
set output "
$errmsg
[join $nil]
[join $map]
[join $new]
"