dbc43b2b97
This bug adds the ability to define a list of item types that are blocked from being issued at that SIP account
To test:
1) Apply this patch
2) Visit Administration->Item types and select edit on the music item type
3) Make the rental charge 0 and save changes (this allows for the item to be checked out via SIP)
4) In the terminal, vim /etc/koha/sites/kohadev/SIPconfig.xml
5) Edit the term1 account and add the following *inside* the login section:
blocked_item_types="BK|MU"
You should have something similar to this: <login id ="term1" ........... checked_in_ok="1" blocked_item_types="BK|MU" />
6) Restart SIP (sudo koha-sip --restart <instancename>)
7) Run a checkout query for an item with the item type book. Here is an example you could use:
perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418-m checkout
8) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
9) Run a checkout query for an item with the item type music. Here is an example you could use:
perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715 -m checkout
10) Notice the checkout failed and you are given the screen msg "Item type cannot be checked out at this checkout location"
11) vim /etc/koha/sites/kohadev/SIPconfig.xml and delete the BK from the blocked_item
12) Delete the BK from blocked_item_types. It should now look like :
blocked_item_types="MU"
13) Restart SIP (sudo koha-sip --restart <instancename>)
14) Run a checkout query for the item with the item type book
perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000011418 -m checkout
15) Checkout succesful
16) Run a checkout query for the item with the item type music
perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL --patron 23529001000463 --item 39999000008715 -m checkout
17) Still fails (because it is blocked)
18) prove t/db_dependent/SIP/Message.t
19) Congratulate yourself for making it through the long test and sign-off :)
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit c2b066d4be
)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
145 lines
6.1 KiB
XML
145 lines
6.1 KiB
XML
<acsconfig xmlns="http://openncip.org/acs-config/1.0/">
|
|
<!-- above address gets nothing, it's just a namespace -->
|
|
<error-detect enabled="true" />
|
|
|
|
<!--
|
|
Set Net::Server::PreFork runtime parameters
|
|
syslog_ident will identify SIP2 Koha server entries in syslog
|
|
See documentation for Net::Server
|
|
user and group select what user the service should run as
|
|
if started as root (e.g. in server startup ) the server will switch to
|
|
this user after binding to the socket it is listening on
|
|
For OpenSolaris, add: syslog_logsock=stream
|
|
-->
|
|
<server-params
|
|
min_servers='1'
|
|
min_spare_servers='0'
|
|
max_servers='1'
|
|
log_file='Sys::Syslog'
|
|
syslog_ident='koha_sip'
|
|
syslog_facility='local6'
|
|
setsid="1"
|
|
user='koha'
|
|
group='koha'
|
|
pid_file='/var/run/sipserver.pid'
|
|
/>
|
|
|
|
<listeners>
|
|
<!-- vestigial HTTP, never implemented: just use the OPAC!
|
|
<service
|
|
port="0:8080/tcp"
|
|
transport="http"
|
|
protocol="NCIP/1.0" />
|
|
-->
|
|
<service
|
|
port="8023/tcp"
|
|
transport="telnet"
|
|
protocol="SIP/2.00"
|
|
timeout="60" />
|
|
|
|
<service
|
|
port="127.0.0.1:6001/tcp"
|
|
transport="RAW"
|
|
protocol="SIP/2.00"
|
|
client_timeout="600"
|
|
timeout="60" />
|
|
<!--- client_timeout times out active connections which have not received
|
|
input from the client. Many persistent connections will send a status request
|
|
every 5-7 mins so setting this to less than that will add instability to the connection
|
|
if explicitly set to zero, no timeout is applied to the connection.
|
|
NB the parameter timeout applies to the login process only and should be set to a lower value
|
|
to time out failed connections
|
|
-->
|
|
</listeners>
|
|
|
|
<accounts>
|
|
<login id="staff" password="staff" delimiter="|" error-detect="enabled" institution="CPL" encoding="ascii" checked_in_ok="1" payment_type_writeoff="06" disallow_overpayment="1" />
|
|
<login id="koha" password="koha" delimiter="|" error-detect="enabled" institution="kohalibrary" encoding="utf8" />
|
|
<login id="koha2" password="koha" institution="kohalibrary2" terminator="CR" />
|
|
<login id="lpl-sc" password="1234" institution="LPL" />
|
|
<login id="lpl-sc-beacock" password="xyzzy"
|
|
delimiter="|" error-detect="enabled" institution="LPL"
|
|
send_patron_home_library_in_af="1"
|
|
cv_send_00_on_success="1"
|
|
ct_always_send="1"
|
|
cv_triggers_alert="1"
|
|
allow_empty_passwords="1"
|
|
cr_item_field="shelving_location"
|
|
ae_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
|
|
da_field_template="[% patron.surname %][% IF patron.firstname %], [% patron.firstname %][% END %]"
|
|
av_field_template="[% accountline.description %] [% accountline.amountoutstanding | format('%.2f') %]"
|
|
hide_fields="BD,BE,BF,PB"
|
|
register_id=''
|
|
holds_block_checkin="0"
|
|
holds_get_captured="1"
|
|
prevcheckout_block_checkout="0"
|
|
overdues_block_checkout="1"
|
|
show_outstanding_amount="1"
|
|
format_due_date="0"
|
|
inhouse_item_types=""
|
|
inhouse_patron_categories=""
|
|
blocked_item_types="VM|MU"
|
|
seen_on_item_information="mark_found"> <!-- could be "keep_lost", empty to disable -->
|
|
<!-- lost_block_checkout sets flag if patron has more than the given current checkouts that are lost ( itemlost > 0 by default ) -->
|
|
<!-- lost_block_checkout_value determines the minimum lost item value to count ( that is, the value in items.itemlost ) -->
|
|
<!-- Refer to syspref SIP2SortBinMapping for full explanation of sort bin mapping -->
|
|
<sort_bin_mapping mapping="CPL:itype:eq:BK:1"/>
|
|
<sort_bin_mapping mapping="CPL:location:eq:OFFICE:2"/>
|
|
<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" />
|
|
<item_field field="ZY" code="permanent_location" />
|
|
<syspref_overrides>
|
|
<AllFinesNeedOverride>0</AllFinesNeedOverride>
|
|
</syspref_overrides>
|
|
<custom_patron_field field="DE" template="[% patron.dateexpiry %]" />
|
|
<custom_item_field field="IN" template="[% item.itemnumber %]" />
|
|
</login>
|
|
</accounts>
|
|
|
|
<!--
|
|
Institution tags are for enabled branches. There needs to be one
|
|
institution stanza for each institution named in the accounts above.
|
|
The implementation attribute is actually used to find the code to run,
|
|
in our case "ILS".
|
|
-->
|
|
|
|
<institutions>
|
|
<institution id="MAIN" implementation="ILS" parms="">
|
|
<policy checkin="true" renewal="true" checkout="true"
|
|
status_update="false" offline="false"
|
|
timeout="100"
|
|
retries="5" />
|
|
</institution>
|
|
<institution id="CPL" implementation="ILS" parms="">
|
|
<policy checkin="true" renewal="true" checkout="true"
|
|
status_update="false" offline="false"
|
|
timeout="25"
|
|
retries="5" />
|
|
</institution>
|
|
<institution id="kohalibrary" implementation="ILS" parms="">
|
|
<policy checkin="true" renewal="false" checkout="true"
|
|
status_update="false" offline="false"
|
|
timeout="100"
|
|
retries="5" />
|
|
</institution>
|
|
<institution id="kohalibrary2" implementation="ILS" parms="">
|
|
<policy checkin="true" renewal="false" checkout="true"
|
|
timeout="100"
|
|
retries="3" />
|
|
</institution>
|
|
<institution id="LPL" implementation="ILS">
|
|
<policy checkin="true" renewal="false" checkout="true"
|
|
timeout="100"
|
|
retries="5" />
|
|
</institution>
|
|
</institutions>
|
|
|
|
<!-- This section allows system preferences to be overridden on a global basis.
|
|
If the same system preference is overridden at the login level, the login
|
|
version will take precedence.
|
|
-->
|
|
<syspref_overrides>
|
|
<AllFinesNeedOverride>0</AllFinesNeedOverride>
|
|
</syspref_overrides>
|
|
</acsconfig>
|