Main Koha release repository https://koha-community.org
Find a file
Tomas Cohen Arazi cf44929d1c Bug 28604: Prevent double encoding of MARC::Record::MiJ->to_mij output
This patch fixes a double-encoding issue with MiJ output.

Mojolicious' *text* renderer encodes the passed information according to
the request context. [1]

MARC::Record::MiJ->to_mij, conveniently encodes the string before
output [2].

This causes double encoding.

So the solution to this situation, is to use the *data* renderer, which
doesn't perform any encoding [3].

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/biblios.t
=> FAIL: Tests contain diacritics and fail!
3. Have a record with diacritics
4. Try the API routes for fetching a biblio:
   $ curl --location --request GET 'http://localhost:8080/api/v1/public/biblios/144' \
          --header 'Accept: application/marc-in-json'
   (replace the record id with the one you've chosen)
=> FAIL: Boo, double encoding
5. Bonus point: you can try it on the non-public route, but you need
   more configuration boilerplate (basic auth, permissions). If you look
   at the fix, you will understand the tests cover it and no need to
   complicate yourself.
6. Apply this patch
7. Repeat 2
=> SUCCESS: Tests pass!
8. Repeat 4 (and maybe 5)
=> SUCCESS: No double encoding! Yay!
9. Sign off :-D

[1] https://metacpan.org/release/MRAMBERG/Convos-0.5/view/local/lib/perl5/Mojolicious/Guides/Rendering.pod#Rendering-text
[2] https://metacpan.org/dist/MARC-File-MiJ/source/lib/MARC/Record/MiJ.pm#L111
[3] https://metacpan.org/release/MRAMBERG/Convos-0.5/view/local/lib/perl5/Mojolicious/Guides/Rendering.pod#Rendering-data

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
2021-07-09 10:29:57 -04:00
acqui Bug 23971: Rename pref with AcquisitionLog 2021-04-23 11:58:49 +02:00
admin Bug 28418: Show template_id of MARC modification templates 2021-07-09 07:56:50 -04:00
api Bug 28480: Add q parameters for GET /patrons 2021-07-09 09:09:31 -04:00
authorities Bug 28160: Values from 150$a aren't prefilled in z39.50 search form from an existing authority record 2021-05-10 15:52:53 +02:00
basket Bug 27268: (QA follow-up) Add Koha::Biblios to basket scripts 2021-03-09 17:20:47 +01:00
bin Bug 20582: Turn Koha into a Mojolicious application 2020-10-06 12:00:04 +02:00
C4 Bug 28581: (QA follow-up) Fix method on unblessed reference 2021-07-09 09:05:48 -04:00
catalogue Bug 28513: Fix analytics search links so they don't match unrelated biblios 2021-06-25 09:51:21 -04:00
cataloguing Bug 27739: Advanced editor should use DefaultCountryField008 preference 2021-04-16 12:28:17 +02:00
circ Bug 28581: Use 'from_email_address' where appropriate 2021-07-09 09:05:48 -04:00
clubs Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
course_reserves Bug 25898: Fix new occurrences 2020-10-15 13:56:41 +02:00
debian Bug 27348: Fix test on ALTERNATE_INDEXER_DAEMON in koha-indexer 2021-07-02 09:36:58 -04:00
docs Bug 28476: Update info in docs/teams.yaml file 2021-07-02 09:26:43 -04:00
errors Bug 26048: Use ErrorDocument middleware for Plack HTTP errors 2021-01-27 10:30:43 +01:00
etc Bug 21286: Add Corporate-name as phrase to zebra indexes 2021-07-02 07:15:39 -04:00
ill Bug 22818: Add generation and sending of notices 2020-11-11 08:35:10 +01:00
installer Bug 26205: DBRev 21.05.00.004 2021-07-09 08:37:40 -04:00
Koha Bug 28604: Prevent double encoding of MARC::Record::MiJ->to_mij output 2021-07-09 10:29:57 -04:00
koha-tmpl Bug 26205: (QA follow-up) Add punctuation and widen pref description a bit 2021-07-09 08:35:42 -04:00
labels Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
lib/CGI/Session/Serialize Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
members Bug 18112: Use GetAuthValueDropbox from the template 2021-05-11 15:37:42 +02:00
misc Bug 28581: Use 'from_email_address' where appropriate 2021-07-09 09:05:48 -04:00
offline_circ Bug 24083: Add support for unseen_renewals 2020-11-11 16:09:58 +01:00
opac Bug 28545: Noisy uninitialized warn at opac-MARCdetail.pl line 313 2021-07-02 09:05:24 -04:00
patron_lists Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
patroncards Bug 23271: Replace search_limited with search_with_library_limits 2021-04-21 15:25:07 +02:00
plugins Bug 24633: Add support for gitlab searching of plugins 2020-11-06 15:55:17 +01:00
pos Bug 28368: Add fallback language for anonymous payment receipts 2021-05-27 14:12:24 +02:00
reports Bug 28570: Remove log to /tmp file from bor_issues_top.pl 2021-07-09 08:20:53 -04:00
reserve Bug 28338: Default to holding branch to save clicks 2021-06-18 09:41:34 -04:00
reviews Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
rotating_collections Bug 26618: (QA follow-up) Fix unit test for TranferCollection change 2021-03-03 15:36:13 +01:00
serials Bug 23243: Adjust previous patch 2021-04-21 15:25:07 +02:00
services Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
skel
suggestion Bug 28581: Use 'from_email_address' where appropriate 2021-07-09 09:05:48 -04:00
svc Bug 27061: Remove duplicate permission check in svc/mana/search 2021-04-30 17:07:32 +02:00
t Bug 28604: Regression tests 2021-07-09 10:29:51 -04:00
tags
tmp/modified_authorities
tools Bug 28353: Display a list of items that cannot be deleted 2021-06-18 06:48:28 -04:00
virtualshelves Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
xt Bug 28370: Rewrite tests 2021-05-25 09:28:18 +02:00
.editorconfig Bug 24774: Set JSON indentation of 2 spaces in .editorconfig 2020-03-19 09:24:52 +00:00
.eslintrc.json
.gitignore
.htaccess
.mailmap Bug 28386: Disambiguate Tomas and Blou 2021-05-26 12:30:59 +02:00
.perlcriticrc Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
.scss-lint.yml Bug 21237: Clean up staff client SCSS 2018-08-24 16:23:25 +00:00
about.pl Bug 28490: Revert "Bug 26995: Remove references to relationship column" 2021-06-18 07:47:34 -04:00
app.psgi Bug 20582: Fix PSGI file when behind a reverse proxy 2020-10-06 12:00:04 +02:00
changelanguage.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
cpanfile Bug 28317: Use the default CGI::Session serializer 2021-05-19 14:45:32 +02:00
fix-perl-path.PL Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
gulpfile.js Bug 27072: Don't process staff interface CSS with rtlcss 2020-11-24 21:27:59 +01:00
help.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
INSTALL Bug 26617: Update INSTALL file to include koha-testing-docker and Gitlab links 2020-10-15 12:56:30 +02:00
Koha.pm Bug 26205: DBRev 21.05.00.004 2021-07-09 08:37:40 -04:00
koha_perl_deps.pl
kohaversion.pl Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
LICENSE Bug 9440 - update Koha's LICENSE file from GPL2 to GPL3 2013-02-12 08:52:10 -05:00
mainpage.pl Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Makefile.PL Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
MANIFEST.SKIP
package.json Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00
README Bug 9440 - update Koha's LICENSE file from GPL2 to GPL3 2013-02-12 08:52:10 -05:00
README.md Bug 27092: Remove note about "synced repo" from README.md 2020-11-25 16:31:58 +01:00
README.robots Bug 6411 add another example to README.robots 2011-07-05 14:48:05 +12:00
rewrite-config.PL Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-18 11:23:42 -04:00
yarn.lock Bug 27939: Update yarn.lock file 2021-03-16 12:04:06 +01:00

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo