Browse Source

Bug 14257 - Add show_attributes to GetPatronInfo

This patch adds the ability to query the extended patron
attributes via the ILSDI web service's GetPatronInfo service.

Example: ilsdi.pl?service=GetPatronInfo&patron_id=3&show_attributes=1

A new element <attributes> will be added if there
are any attributes available from the database.

We need to discuss the security implications of showing the
attributes. At present it will allow querying of non-public
(OPAC-visible) information. We might want to change this.

Sponsored-By: Halland County Library

Test plan:

* Configure Koha to make use of extended attributes:
  Under 'Administration' -> 'Global system preferences' ->
  'Patrons' tab -> Set 'ExtendedPatronAttributes' to 'Enable',
  press save and switch to 'Web services' tab.

* Enable the ILS-DI service:
  Under 'Administration' -> 'Global system preferences' ->
  'Web services' tab -> 'ILS-DI' section:
  Set 'ILS-DI' to 'Enable' and save.

* Create an attribute to query:
  Under 'Administration' -> 'Patrons and circulation' ->
  'Patron attribute types' press 'New patron attribute type':
  Enter a type code, like 'DOORCODE', description and assign
  a category that your test patron is a member of, then save.

* Set value for test user:
  Locate the test patron, the new attribute should be listed
  under 'Additional attributes and identifiers'.
  Click 'Edit' and assign a value, like '1337' and save.

* Query the ILS-DI service:
  http://127.0.1.1/cgi-bin/koha/ilsdi.pl?service=GetPatronInfo&patron_id=1&show_attributes=1
  The output XML should have an element named 'attributes'
  containing the data you entered.

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
new_12478_elasticsearch
Martin Persson 6 years ago
committed by Brendan A Gallagher
parent
commit
ead5b9c0e2
  1. 6
      C4/ILSDI/Services.pm
  2. 2
      opac/ilsdi.pl

6
C4/ILSDI/Services.pm

@ -34,6 +34,7 @@ use HTML::Entities;
use CGI qw ( -utf8 );
use DateTime;
use C4::Auth;
use C4::Members::Attributes qw(GetBorrowerAttributes);
=head1 NAME
@ -428,6 +429,11 @@ sub GetPatronInfo {
$borrower->{'loans'}->{'loan'} = $issues;
}
if ( $cgi->param('show_attributes') eq "1" ) {
my $attrs = GetBorrowerAttributes( $borrowernumber, 0, 1 );
$borrower->{'attributes'} = $attrs;
}
return $borrower;
}

2
opac/ilsdi.pl

@ -104,7 +104,7 @@ my %optional = (
'GetAuthorityRecords' => ['schema'],
'LookupPatron' => ['id_type'],
'AuthenticatePatron' => [],
'GetPatronInfo' => [ 'show_contact', 'show_fines', 'show_holds', 'show_loans' ],
'GetPatronInfo' => [ 'show_contact', 'show_fines', 'show_holds', 'show_loans', 'show_attributes' ],
'GetPatronStatus' => [],
'GetServices' => [],
'RenewLoan' => ['desired_due_date'],

Loading…
Cancel
Save