From adf10f4fccae500c4e0ce8469e59fe86bd65c54e Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 15 Jun 2018 13:03:43 +0000 Subject: [PATCH] Bug 20954: Add ability to set syspref overrides in SIP as we can in apache We should be able to set system preference overrides for SIP in a similar manner that we do in Apache. It would be great if we could specify those overrides on both a config level, and login level basis. Test Plan: 1) Apply this patch 2) Start your SIP server 3) Enable the syspref AllFinesNeedOverride 4) Find or create a patron with a small fine ( less than noissuescharge ) 5) Attempt to check out an item to the patron, it should fail 6) Add the global syspref override from the bottom of the example SIP config file 7) Restart your SIP server 8) Attempt to check out an item to the patron again, this time it should work 9) Now, add the login level syspref override section as it appears in the eaxmple SIP config file. Make sure to add it to the login you are using 10) Attempt to check out another item to the patron, this time is should again fail Signed-off-by: Liz Rea --- C4/SIP/Sip/MsgType.pm | 13 +++++++++++++ etc/SIPconfig.xml | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm index 6c2e4fc98c..a1021d727a 100644 --- a/C4/SIP/Sip/MsgType.pm +++ b/C4/SIP/Sip/MsgType.pm @@ -331,6 +331,19 @@ sub handle { my $config = $server->{config}; my $self; + # Set system preference overrides, first global, then account level + # Clear overrides from previous message handling first + foreach my $key ( %ENV ) { + delete $ENV{$key} if index($key, 'OVERRIDE_SYSPREF_') > 0; + } + foreach my $key ( keys %{ $config->{'syspref-overrides'} } ) { + $ENV{"OVERRIDE_SYSPREF_$key"} = $config->{'syspref-overrides'}->{$key}; + } + foreach my $key ( keys %{ $server->{account}->{'syspref-overrides'} } ) { + $ENV{"OVERRIDE_SYSPREF_$key"} = + $server->{account}->{'syspref-overrides'}->{$key}; + } + # # What's the field delimiter for variable length fields? # This can't be based on the account, since we need to know diff --git a/etc/SIPconfig.xml b/etc/SIPconfig.xml index 1e17ef0338..0406b10d79 100644 --- a/etc/SIPconfig.xml +++ b/etc/SIPconfig.xml @@ -60,6 +60,9 @@ + + 0 + @@ -100,4 +103,13 @@ in our case "ILS". retries="5" /> + + + + 0 + + -- 2.11.0