special characters in the patron barcode are replaced with URL Encoding codes in the Place hold screen.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Tested on Evergreen 3.6
If a patrons barcode has a special character the Place hold screen will sometimes replace the special character with URL Encoding codes. I only tested with barcodes that have a + or a $ in them so the summary might not be specific enough. Here are the steps to reproduce the issue.
1) Create a patron with a barcode that contains either a + or $ sign.
2) Bring that patron up ion the web client.
3) Click on the Holds tab
4) Click on the Place Hold button
5) Search for an title to place a hold.
6) Click on the Place Hold button for the title.
7) Look at the barcode of the patron on the Place Hold screen. The $ sign turns into %24 and the + turned into %2B
8) Hitting the Place Hold(s) button will result in an Barcode not found error messge.
Example patron barcode = 'eolitest$3' is turned into Barcode 'eolitest%243'. Barcode 'eolitest2+' is turned into 'eolitest2%2B'
You need to fix the barcode in the Place hold screen before the hold will be allowed toFixing the barcode in the screen will allow the hold to go through.
I did not test any other special character.
Changed in evergreen: | |
status: | New → Confirmed |
This appears to be related to bug 1892435. The Angular redirect will escape the already escaped query string on certain servers.
For example, eolitest2+ is escaped to eolitest2%2B before the request, then the redirect escapes it again to eolitest2%252B, which is decoded into eolitest2%2B.
Like bug 1892435, I could only replicate this on an older version of Apache, in my case Ubuntu 16.04.7, Apache 2.4.18, EG 3.6.3.