Index: openacs-4/packages/contacts/tcl/contact-employee-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contact-employee-procs.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/contacts/tcl/contact-employee-procs.tcl 12 Jun 2006 07:55:36 -0000 1.3 +++ openacs-4/packages/contacts/tcl/contact-employee-procs.tcl 8 Sep 2006 13:45:33 -0000 1.4 @@ -408,6 +408,12 @@ if { $package_id eq "" } { set package_id [ad_conn package_id] } + + # Make sure the package_id belongs to a contacts package + if { ![string eq [apm_package_key_from_id $package_id] "contacts"]} { + set package_id [acs_object::package_id -object_id [content::item::get_best_revision -item_id $employee_id]] + } + return [util_memoize [list ::contact::util::get_employee_organization_not_cached -employee_id $employee_id -package_id $package_id]] } Index: openacs-4/packages/contacts/tcl/contacts-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/tcl/contacts-procs.tcl,v diff -u -r1.94 -r1.95 --- openacs-4/packages/contacts/tcl/contacts-procs.tcl 26 Jun 2006 21:55:16 -0000 1.94 +++ openacs-4/packages/contacts/tcl/contacts-procs.tcl 8 Sep 2006 13:45:33 -0000 1.95 @@ -101,7 +101,7 @@ contact::revision::new -party_id $organization_id } if { ![info exists person_id] && ![info exists organization_id] } { - ns_log notice "contacts::sweeper no person or organization objects exist that do not have associated content_items" + ns_log Debug "contacts::create_revisions_sweeper no person or organization objects exist that do not have associated content_items" } db_dml insert_privacy_records {} } @@ -618,13 +618,20 @@ ad_proc -public contact::revision::new { {-party_id:required} {-party_revision_id ""} + {-package_id ""} } { create a contact revision } { + if {$package_id eq ""} { + set package_id [ad_conn package_id] + } + set extra_vars [ns_set create] oacs_util::vars_to_ns_set -ns_set $extra_vars -var_list {party_id party_revision_id} - return [package_instantiate_object \ + set party_revision_id [package_instantiate_object \ -extra_vars $extra_vars contact_party_revision] + db_dml update_package_id "update acs_objects set package_id = :package_id where object_id = :party_revision_id" + return $party_revision_id } ad_proc -public contact::live_revision { @@ -718,7 +725,7 @@ # Make sure that we do not upgrade an already existing user - if {![contact::user_p -party_id $person_id]} { + if {![contact::user_p -party_id $person_id] && [string eq "" [acs_user::get_by_username -username $username]]} { db_transaction { db_dml upgrade_user {update acs_objects set object_type = 'user' where object_id = :user_id;