From 96495a58be3a2deb97ed3871df7ebf49ec45efc9 Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 12 Oct 2006 21:10:10 +0000 Subject: [PATCH] added public penalty update method, moved to new fines summary method, moved user note create/delete to cstore and transactions git-svn-id: svn://svn.open-ils.org/ILS/trunk@6456 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Application/Actor.pm | 87 +++++++++++++--------- 1 file changed, 53 insertions(+), 34 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index 50864c8209..751b35d2ba 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -1308,20 +1308,20 @@ __PACKAGE__->register_method( NOTES sub user_fines_summary { - my( $self, $client, $login_session, $user_id ) = @_; + my( $self, $client, $auth, $user_id ) = @_; + my $e = new_editor(authtoken=>$auth); + return $e->event unless $e->checkauth; + my $user = $e->retrieve_actor_user($user_id) + or return $e->event; - my $user_obj = $apputils->check_user_session($login_session); - if($user_obj->id ne $user_id) { - if($apputils->check_user_perms($user_obj->id, $user_obj->home_ou, "VIEW_USER_FINES_SUMMARY")) { - return OpenILS::Perm->new("VIEW_USER_FINES_SUMMARY"); - } + if( $user_id ne $e->requestor->id ) { + return $e->event unless + $e->allowed('VIEW_USER_FINES_SUMMARY', $user->home_ou); } - + return $apputils->simple_scalar_request( - "open-ils.cstore", - "open-ils.cstore.direct.money.open_user_summary.search", - { usr => $user_id } ); - + 'open-ils.storage', + 'open-ils.storage.money.open_user_summary.search', $user_id ); } @@ -2360,16 +2360,19 @@ __PACKAGE__->register_method ( ); sub create_user_note { my( $self, $conn, $authtoken, $note ) = @_; - my( $reqr, $patron, $evt ) = - $U->checkses_requestor($authtoken, $note->usr, 'UPDATE_USER'); - return $evt if $evt; - $logger->activity("user ".$reqr->id." creating note for user ".$note->usr); + my $e = new_editor(xact=>1, authtoken=>$authtoken); + return $e->die_event unless $e->checkauth; - $note->creator($reqr->id); - my $id = $U->storagereq( - 'open-ils.storage.direct.actor.usr_note.create', $note ); - return $U->DB_UPDATE_FAILED($note) unless $id; - return $id; + my $user = $e->retrieve_actor_user($note->usr) + or return $e->die_event; + + return $e->die_event unless + $e->allowed('UPDATE_USER',$user->home_ou); + + $note->creator($e->requestor->id); + $e->create_actor_usr_note($note) or return $e->die_event; + $e->commit; + return $note->id; } @@ -2385,19 +2388,18 @@ __PACKAGE__->register_method ( sub delete_user_note { my( $self, $conn, $authtoken, $noteid ) = @_; - my $note = $U->cstorereq( - 'open-ils.cstore.direct.actor.usr_note.retrieve', $noteid); - return OpenILS::Event->new('ACTOR_USER_NOTE_NOT_FOUND') unless $note; - - my( $reqr, $patron, $evt ) = - $U->checkses_requestor($authtoken, $note->usr, 'UPDATE_USER'); - return $evt if $evt; - $logger->activity("user ".$reqr->id." deleting note [$noteid] for user ".$note->usr); - - my $stat = $U->storagereq( - 'open-ils.storage.direct.actor.usr_note.delete', $noteid ); - return $U->DB_UPDATE_FAILED($note) unless defined $stat; - return $stat; + my $e = new_editor(xact=>1, authtoken=>$authtoken); + return $e->die_event unless $e->checkauth; + my $note = $e->retrieve_actor_usr_note($noteid) + or return $e->die_event; + my $user = $e->retrieve_actor_user($note->usr) + or return $e->die_event; + return $e->die_event unless + $e->allowed('UPDATE_USER', $user->home_ou); + + $e->delete_actor_usr_note($note) or return $e->die_event; + $e->commit; + return 1; } @@ -2600,6 +2602,21 @@ sub trim_tree { } +__PACKAGE__->register_method( + method => "update_penalties", + api_name => "open-ils.actor.user.penalties.update"); +sub update_penalties { + my( $self, $conn, $auth, $userid ) = @_; + my $e = new_editor(authtoken=>$auth); + return $e->event unless $e->checkauth; + $U->update_patron_penalties( + authtoken => $auth, + patronid => $userid, + ); + return 1; +} + + __PACKAGE__->register_method( method => "user_retrieve_fleshed_by_id", @@ -2609,9 +2626,11 @@ sub user_retrieve_fleshed_by_id { my( $self, $client, $auth, $user_id, $fields ) = @_; my $e = new_editor(authtoken => $auth); return $e->event unless $e->checkauth; + if( $e->requestor->id != $user_id ) { return $e->event unless $e->allowed('VIEW_USER'); } + $fields ||= [ "cards", "card", @@ -2658,7 +2677,7 @@ sub new_flesh_user { } } - $e->disconnect; + $e->rollback; $user->clear_passwd(); return $user; } -- 2.11.0