# throws an exception on error.
# ---------------------------------------------------------------------------
sub check_user_session {
-
my( $self, $user_session ) = @_;
my $content = $self->simplereq(
'open-ils.auth',
- 'open-ils.auth.session.retrieve', $user_session );
-
- if(! $content or $self->event_code($content)) {
- throw OpenSRF::EX::ERROR
- ("Session [$user_session] cannot be authenticated" );
- }
-
- $logger->debug("Fetch user session $user_session found user " . $content->id );
+ 'open-ils.auth.session.retrieve', $user_session);
+ return undef if (!$content) or $self->event_code($content);
return $content;
}
sub checkses {
my( $self, $session ) = @_;
- my $user; my $evt; my $e;
-
- $logger->debug("Checking user session $session");
-
- try {
- $user = $self->check_user_session($session);
- } catch Error with { $e = 1; };
-
- $logger->debug("Done checking user session $session " . (($e) ? "error = $e" : "") );
-
- if( $e or !$user ) { $evt = OpenILS::Event->new('NO_SESSION'); }
- return ( $user, $evt );
+ my $user = $self->check_user_session($session) or
+ return (undef, OpenILS::Event->new('NO_SESSION'));
+ return ($user);
}
# grabbing copy trees should be available for everyone..
if(!@org_ids and $user_session) {
- my $user_obj =
- OpenILS::Application::AppUtils->check_user_session( $user_session ); #throws EX on error
- @org_ids = ($user_obj->home_ou);
+ my($user_obj, $evt) = OpenILS::Application::AppUtils->checkses($user_session);
+ return $evt if $evt;
+ @org_ids = ($user_obj->home_ou);
}
if( $self->api_name =~ /global/ ) {
$method = "open-ils.storage.fleshed.asset.stat_cat.retrieve.batch.atomic";
}
- my $user_obj = $apputils->check_user_session($user_session);
+ my($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
my $cats = $apputils->simple_scalar_request(
"open-ils.storage", $method, @sc);
$method = "open-ils.storage.ranged.fleshed.asset.stat_cat.all.atomic";
}
- my $user_obj = $apputils->check_user_session($user_session);
+ my($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
if(!$orgid) { $orgid = $user_obj->home_ou; }
my $cats = $apputils->simple_scalar_request(
"open-ils.storage", $method, $orgid );
sub retrieve_ranged_intersect_stat_cats {
my( $self, $client, $user_session, $orglist ) = @_;
- my $user_obj = $apputils->check_user_session($user_session);
+ my($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
if(!$orglist) { $orglist = [ $user_obj->home_ou ]; }
# uniquify, yay!
use Data::Dumper;
warn "Retrieving stat_cats with method $method and orgs " . Dumper($orglist) . "\n";
- my $user_obj = $apputils->check_user_session($user_session);
+ my($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
if(!$orglist) { $orglist = [ $user_obj->home_ou ]; }
# uniquify, yay!
sub add_survey {
my( $self, $client, $user_session, $survey ) = @_;
- my $user_obj = $apputils->check_user_session($user_session);
+ my($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
my $session = $apputils->start_db_session();
my $err = undef; my $id;
my( $self, $client, $user_session ) = @_;
- my $user_obj = $apputils->check_user_session($user_session);
+ my ($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
my $orgid = $user_obj->ws_ou() ? $user_obj->ws_ou() : $user_obj->home_ou();
my $surveys = $apputils->simple_scalar_request(
"open-ils.storage",
my( $self, $client, $user_session, $survey_id, $user_id ) = @_;
if(!$user_id) {
- my $user_obj = $apputils->check_user_session($user_session);
+ my ($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
$user_id = $user_obj->id;
}
sub get_all_surveys {
my( $self, $client, $user_session ) = @_;
- my $user_obj = $apputils->check_user_session($user_session);
+ my ($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
my $orgid = $user_obj->ws_ou() ? $user_obj->ws_ou() : $user_obj->home_ou();
my $surveys = $apputils->simple_scalar_request(
"open-ils.storage",
if($self->api_name =~ /session/) {
if( ! ($id = $already_seen{$res->usr}) ) {
- my $user_obj = $apputils->check_user_session($res->usr);
+ my ($user_obj, $evt) = $apputils->checkses($res->usr);
+ return $evt if $evt;
$id = $user_obj->id;
$already_seen{$res->usr} = $id;
}
sub get_random_survey {
my( $self, $client, $user_session ) = @_;
- my $user_obj = $apputils->check_user_session($user_session);
+ my ($user_obj, $evt) = $apputils->checkses($user_session);
+ return $evt if $evt;
+
my $surveys = $apputils->simple_scalar_request(
"open-ils.storage",
"open-ils.storage.action.survey.opac.atomic",