Bugzilla – Attachment 60063 Details for
Bug 17826
Allow extended patron attributes to be sent in arbitrary SIP2 fields
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17826 - Allow extended patron attributes to be sent in arbitrary SIP2 fields
Bug-17826---Allow-extended-patron-attributes-to-be.patch (text/plain), 4.17 KB, created by
Kyle M Hall (khall)
on 2017-02-09 12:04:36 UTC
(
hide
)
Description:
Bug 17826 - Allow extended patron attributes to be sent in arbitrary SIP2 fields
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2017-02-09 12:04:36 UTC
Size:
4.17 KB
patch
obsolete
>From d10bf022ee0023b106ecb72580a4e63827297be5 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Thu, 29 Dec 2016 15:39:28 +0000 >Subject: [PATCH] Bug 17826 - Allow extended patron attributes to be sent in > arbitrary SIP2 fields > >Some libraries need to be able to send additional patron data from the >extended patron attributes in made up SIP2 fields for the patron >information and patron status responses. > >Test Plan: >1) Apply this patch >2) Create 3 new patron attributes with the codes CODE1, CODE2, CODE3. > Make a least one repeatable. >3) Create a patron, add those attibutes for the patron, make sure there > are at least two instances of the repeatable code >4) Edit your SIP2 config file, add the following within the login stanza: > <patron_attribute field="XX" code="CODE1" /> > <patron_attribute field="XY" code="CODE2" /> > <patron_attribute field="XZ" code="CODE3" /> >5) Using the sip cli emulator, run patron_information and > patron_status_request messages for the patron >6) Note the values you set for the patron attributes are sent in the > corrosponding fields! > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >Signed-off-by: Daniel Mauchley <dmauchley@duchesne.utah.gov> >--- > C4/SIP/ILS/Patron.pm | 31 +++++++++++++++++++++++++++++++ > C4/SIP/Sip/MsgType.pm | 6 ++++++ > etc/SIPconfig.xml | 1 + > 3 files changed, 38 insertions(+) > >diff --git a/C4/SIP/ILS/Patron.pm b/C4/SIP/ILS/Patron.pm >index 0012776..36bc898 100644 >--- a/C4/SIP/ILS/Patron.pm >+++ b/C4/SIP/ILS/Patron.pm >@@ -15,6 +15,8 @@ use Carp; > use Sys::Syslog qw(syslog); > use Data::Dumper; > >+use C4::SIP::Sip qw(add_field); >+ > use C4::Debug; > use C4::Context; > use C4::Koha; >@@ -447,6 +449,35 @@ sub _get_outstanding_holds { > return \@hold_array; > } > >+sub build_patron_attributes_string { >+ my ( $self, $server ) = @_; >+ >+ my $string = q{}; >+ >+ if ( $server->{account}->{patron_attribute} ) { >+ my @attributes_to_send = >+ ref $server->{account}->{patron_attribute} eq "ARRAY" >+ ? @{ $server->{account}->{patron_attribute} } >+ : $server->{account}->{patron_attribute}; >+ >+ foreach my $a ( @attributes_to_send ) { >+ my @attributes = Koha::Patron::Attributes->search( >+ { >+ borrowernumber => $self->{borrowernumber}, >+ code => $a->{code} >+ } >+ ); >+ >+ foreach my $attribute ( @attributes ) { >+ my $value = $attribute->attribute(); >+ $string .= add_field( $a->{field}, $value ); >+ } >+ } >+ } >+ >+ return $string; >+} >+ > 1; > __END__ > >diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm >index 4e406e2..464a8fc 100644 >--- a/C4/SIP/Sip/MsgType.pm >+++ b/C4/SIP/Sip/MsgType.pm >@@ -19,6 +19,8 @@ use Data::Dumper; > use CGI qw ( -utf8 ); > use C4::Auth qw(&check_api_auth); > >+use Koha::Patron::Attributes; >+ > use UNIVERSAL::can; > > use vars qw(@ISA @EXPORT_OK); >@@ -443,6 +445,8 @@ sub build_patron_status { > if ( $server->{account}->{send_patron_home_library_in_af} ); > $resp .= maybe_add( FID_PRINT_LINE, $patron->print_line ); > >+ $resp .= $patron->build_patron_attributes_string( $server ); >+ > } else { > # Invalid patron (cardnumber) > # Report that the user has no privs. >@@ -1006,6 +1010,8 @@ sub handle_patron_info { > $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server); > } > $resp .= maybe_add( FID_PRINT_LINE, $patron->print_line ); >+ >+ $resp .= $patron->build_patron_attributes_string( $server ); > } else { > > # Invalid patron ID: >diff --git a/etc/SIPconfig.xml b/etc/SIPconfig.xml >index 40e495e..45f9ec0 100644 >--- a/etc/SIPconfig.xml >+++ b/etc/SIPconfig.xml >@@ -54,6 +54,7 @@ > av_field_template="[% accountline.description %] [% accountline.amountoutstanding | format('%.2f') %]" > > <screen_msg_regex find="Greetings from Koha." replace="Welcome to your library!" /> > <screen_msg_regex find="Invalid patron barcode." replace="Barcode not found, are you sure this is your library card?" /> >+ <patron_attribute field="XY" code="CODE" /> > </login> > </accounts> > >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17826
:
58499
|
58500
|
60063
|
68622
|
68655
|
72614