Currently only cardnumber + password can be used to authenticate via SIP. This is ok for self check stations where you scan the patron card, but can be a problem if you want to use SIP2 for authentication with other services. If the username does not exist as cardnumber in the system, the userid field should be checked next.
Created attachment 9768 [details] [review] patch
This is a quick fix, it is not terribly efficient, uses 2 database lookups instead of 1. If that's a problem it can be dealt with later. Also there is a potential issue with overlapping card number/user id for different users, but that should be highly unlikely.
Created attachment 9845 [details] [review] bug_8039: Try userid if cardnumber borrower search fails in SIP
Created attachment 11070 [details] [review] bug_8039: Try userid if cardnumber borrower search fails in SIP
Patch rebased, it is a catalyst patch so I dont want to sign off.
Created attachment 13359 [details] [review] bug_8039: Try userid if cardnumber borrower search fails in SIP Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
I signed off on this patch because if works. However, I'm wondering if this should be configurable ( username, barcode, or both ). Here is my specific example, and a shameless plug. I'm the author of Libki, a kiosk management system. It supports SIP2 for user authentication. When a patron attempts to log in, Libki makes a SIP request for the user, if it comes back positive, it creates the account in Libki ( if it didn't already exists ). Each patron has an allotment of minutes they can use per day. With this patch, a clever person may realize he or she can login twice, once with his or her cardnumber, and once with his or her user id ( assuming they are not one and the same ). I think it would be good to make this a setting in SIPconfig.xml. That way, a library could run multiple instances of the SIP server with different settings. One could be for cardnumber/userid ( for sip2 SCO ) and another could be for userid only ( perhaps for Libki ).
SIP2 will return the unique identifier (borrowernumber), so you could make Libki not make 2 users if the user already exists. Since they can't actually login to Koha twice, it might be better to fix it on the Libki side, since other systems may well allow this too, and I assume Libki is designed to work with multiple ILSes?
I hadn't thought of that. That is a good solution, and I hereby withdraw my caveat! (In reply to comment #8) > SIP2 will return the unique identifier (borrowernumber), so you could make > Libki not make 2 users if the user already exists. > > Since they can't actually login to Koha twice, it might be better to fix it > on the Libki side, since other systems may well allow this too, and I assume > Libki is designed to work with multiple ILSes?
*** Bug 9109 has been marked as a duplicate of this bug. ***
Created attachment 13981 [details] [review] bug_8039: Try userid if cardnumber borrower search fails in SIP Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Created attachment 13982 [details] [review] Bug 8039 follow-up replace tabs by 4 spaces (QA process)
QA comment: * not an enhancement I think, but a normal bugfix I think * tiny patch, nothing specific to say about it * passes koha-qa.pl, except for tab as indent marker, but this file has many, I add a follow-up with s/tab/4spaces/g passed QA
This patch has been pushed to master. I do not have an actual self-check machine, so I would be grateful if someone who does have one would test now that these patches have been pushed.