From: erickson Date: Mon, 29 Dec 2008 19:07:03 +0000 (+0000) Subject: can now pass in a list of source user id's to merge into the single master user.... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=88dab5f0dbbbb67e11439c4b10814e4c73d6a683;p=Evergreen.git can now pass in a list of source user id's to merge into the single master user. updated json query to use the more consise syntax git-svn-id: svn://svn.open-ils.org/ILS/trunk@11697 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 45d29cf602..98400d41f9 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -3064,31 +3064,23 @@ __PACKAGE__->register_method ( ); sub merge_users { - my($self, $conn, $auth, $src_id, $dest_id, $options) = @_; + my($self, $conn, $auth, $master_id, $options, @user_ids) = @_; my $e = new_editor(xact => 1, authtoken => $auth); return $e->die_event unless $e->checkauth; - my $src_user = $e->retrieve_actor_user($src_id) or return $e->die_event; - my $dest_user = $e->retrieve_actor_user($dest_id) or return $e->die_event; + for my $src_id (@user_ids) { + my $src_user = $e->retrieve_actor_user($src_id) or return $e->die_event; + my $master_user = $e->retrieve_actor_user($master_id) or return $e->die_event; - return $e->die_event unless $e->allowed('MERGE_USERS', $src_user->home_ou); - if($src_user->home_ou ne $dest_user->home_ou) { - return $e->die_event unless $e->allowed('MERGE_USERS', $dest_user->home_ou); + return $e->die_event unless $e->allowed('MERGE_USERS', $src_user->home_ou); + if($src_user->home_ou ne $master_user->home_ou) { + return $e->die_event unless $e->allowed('MERGE_USERS', $master_user->home_ou); + } + + return $e->die_event unless + $e->json_query({from => ['actor.usr_merge', $src_id, $master_id]}); } - my $query = { - select => { - au => [ { - transform => 'actor.usr_merge', - params => [$dest_id], - column => 'id', - } ] - }, - from => 'au', - where => {id => $src_id}, - }; - - return $e->die_event unless $e->json_query($query); $e->commit; return 1; }