Koha-clms/Koha
Tomas Cohen Arazi f146bf38b1 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>
(cherry picked from commit cf44929d1c)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
(cherry picked from commit cec90fb3c2)
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
2021-08-16 20:39:34 +02:00
..
Account Bug 28482: Refresh line from DB to get stored value 2021-06-22 02:43:50 +02:00
Acquisition Bug 24161: (follow-up) Fix typo in POD 2020-05-04 12:48:17 +01:00
ArticleRequest Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authority Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblio Bug 26171: Show biblionumber in Koha::Exceptions::Metadata::Invalid 2021-01-10 20:43:08 +00:00
BiblioUtils Bug 24827: Specify UTF-8 as encoding in new_from_xml() 2020-03-16 14:45:47 +00:00
Cache Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cash Bug 23185: (follow-up) K:C:Register->make_default should use no_triggers 2020-05-08 13:14:59 +02:00
Charges Bug 21443: Remove the dependency on finesCalendar 2020-03-24 11:09:16 +00:00
Checkouts Bug 27004: Prevent claim resolution to fail 2021-01-05 17:49:38 +00:00
Club Bug 27330: (follow-up) Cleanup missed on bug 23843 2021-03-04 17:26:44 +00:00
Config Bug 27154: Remove Koha::Util::SystemPreferences 2021-02-17 20:25:10 +00:00
Course Bug 23727: Editing course reserve items is broken 2020-04-17 13:45:56 +01:00
Edifact Bug 26989: Safeguard Order Messages from unwanted characters 2021-05-24 15:28:10 +00:00
Exceptions Bug 26312: (follow-up) Fix passing of exception messages 2021-04-25 15:23:38 +00:00
Exporter Bug 22721: Remove frameworkcode parameter in GetMarcFromKohaField calls 2019-07-15 11:28:08 +01:00
ExternalContent Bug 25527: Add logger to Koha::ExternalContent 2020-05-18 15:25:03 +01:00
Filter/MARC Bug 25019: Make the ViewPolicy filter initialization standard 2020-04-08 11:45:47 +01:00
Illrequest Bug 23173: (follow-up) Fix QA script errors 2020-04-06 11:05:14 +01:00
Indexer Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Item Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Library Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
List Bug 19524: Share patron lists between staff 2018-07-18 16:49:29 +00:00
MetadataRecord Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Middleware Bug 25950: Remove <client> in X-Forwarded-For from proxy tests 2020-07-24 21:22:17 +00:00
Misc Bug 16011: $VERSION - Remove use vars qw(); 2016-03-24 17:20:39 +00:00
Notice Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Number Bug 18736: (follow-up) Fix missing rounding and bad formatting 2019-03-21 16:29:06 +00:00
OAI/Server Bug 24052: Rename XSLT_Handler 2020-03-24 10:42:23 +00:00
Object Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Objects Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Old Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Patron Bug 26594: (QA follow-up) Make _UpdateBorrowerDebarmentFlags a public method 2020-11-16 22:35:13 +00:00
Patrons Bug 28293: (bug 20443 follow-up) Fix wrong key in Patrons::Import->generate_patron_attributes 2021-05-25 13:18:26 +00:00
Plugins Bug 26434: Fix plugin dirs addition to @INC 2020-10-16 16:23:43 +00:00
REST Bug 28604: Prevent double encoding of MARC::Record::MiJ->to_mij output 2021-08-16 20:39:34 +02:00
RecordProcessor Bug 16011: $VERSION - Remove the $VERSION init 2016-03-24 17:20:28 +00:00
SMS Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Schema DBIC schema changes 2021-04-25 14:37:29 +00:00
SearchEngine Bug 27724: Use lenient also in Elasticsearch authorities search 2021-05-25 14:04:35 +00:00
Serial Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Sitemapper Bug 24840: Replace DateTime->now with dt_from_string 2020-04-08 11:54:23 +01:00
Subscription Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SuggestionEngine Bug 14457: (QA follow-up) Fix POD 2019-04-16 13:17:34 +00:00
Tags Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Template/Plugin Bug 27120: Send biblio to Koha plugins hook 'intranet_catalog_biblio_tab' 2021-05-24 16:40:14 +00:00
Util Bug 27154: Remove Koha::Util::SystemPreferences 2021-02-17 20:25:10 +00:00
XSLT Bug 23290: (RM follow-up) Correction to copyright statement 2020-02-25 14:35:39 +00:00
Z3950Responder Bug 27149: Don't strip itemnumber when adding item status via Z3950Responder 2021-01-22 16:30:48 +00:00
pdfformat Bug 25507: Fix table in basket group PDF German 2-pages 2020-06-17 22:23:33 +00:00
Account.pm Bug 28156: Rename Koha::Account::Line->renewal with is_renewal 2021-04-25 16:58:09 +00:00
ActionLog.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ActionLogs.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AdditionalField.pm Bug 15774: Add POD and license notices 2019-03-07 20:37:05 +00:00
AdditionalFieldValue.pm Bug 22934: Add missing use statement 2019-05-23 14:43:16 +00:00
AdditionalFieldValues.pm Bug 15774: (follow-up) Address QA issues 2019-03-07 20:37:05 +00:00
AdditionalFields.pm Bug 15774: Add POD and license notices 2019-03-07 20:37:05 +00:00
AdvancedEditorMacro.pm Bug 17268: (follow-up) Fix translatability 2020-05-04 08:26:22 +01:00
AdvancedEditorMacros.pm Bug 17268: (follow-up) Fix translatability 2020-05-04 08:26:22 +01:00
ApiKey.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ApiKeys.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ArticleRequest.pm Bug 23384: Fix use statement order for ArticleRequest::Status 2020-03-06 15:00:25 +00:00
ArticleRequests.pm Bug 23384: Fix use statement order for ArticleRequest::Status 2020-03-06 15:00:25 +00:00
AudioAlert.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AudioAlerts.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthUtils.pm Bug 20370: Misleading comment for bcrypt - #encrypt it; Instead it should be #hash it 2020-04-14 08:35:24 +01:00
AuthorisedValue.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
AuthorisedValueCategories.pm Bug 17355: (QA follow-up) Fix used package name 2020-05-07 19:10:29 -03:00
AuthorisedValueCategory.pm Bug 17355: (QA follow-up) Fix used package name 2020-05-07 19:10:29 -03:00
AuthorisedValues.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authorities.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Authority.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblio.pm Bug 28202: Pickup libraries must be sorted by name when placing hold 2021-05-25 11:03:05 +00:00
BiblioFramework.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
BiblioFrameworks.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
BiblioUtils.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblioitem.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblioitems.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Biblios.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cache.pm Bug 16067: Remove FastMmap 2020-12-15 21:44:14 +00:00
Caches.pm Bug 17935: Adjust some POD lines, fix a few typos 2017-02-14 14:12:50 +00:00
Calendar.pm Bug 25723: (QA follow-up) Handle holiday and exception on same day 2020-07-27 17:40:25 +00:00
Checkout.pm Bug 25552: (QA follow-up) Improve claim_returned POD 2021-02-09 21:36:28 +00:00
Checkouts.pm Bug 24840: Replace DateTime->now with dt_from_string 2020-04-08 11:54:23 +01:00
CirculationRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
CirculationRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Cities.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
City.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSortRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSortRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSource.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSources.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSplitRule.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ClassSplitRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Club.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Clubs.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Config.pm Bug 19760: Die if koha-conf is not accessible 2017-12-22 13:15:35 -03:00
Course.pm Bug 23727: Add Koha Object(s) related to course reserves 2020-04-17 13:45:51 +01:00
Courses.pm Bug 23727: Add Koha Object(s) related to course reserves 2020-04-17 13:45:51 +01:00
CsvProfile.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
CsvProfiles.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Database.pm Bug 26639: Add auto_savepoint to DBIC connection 2020-11-16 18:51:05 +00:00
DateUtils.pm Bug 25617: (bug 25133 follow-up) 12 PM is not 24 but 0 2020-05-29 11:30:02 +02:00
Desk.pm Bug 13881: Add desk management 2020-03-25 09:19:15 +00:00
Desks.pm Bug 13881: Add desk management 2020-03-25 09:19:15 +00:00
EDI.pm Bug 18267: Refactored Edifact Price Calculations 2020-12-09 19:50:39 +00:00
Edifact.pm Bug 7736: Support Ordering via Edifact EDI messages 2016-04-01 20:03:17 +00:00
Email.pm Bug 24826: Remove warnings from Sendmail 2020-04-08 11:47:19 +01:00
Exceptions.pm Bug 26518: Raise exception if the insert failed 2020-12-14 15:24:10 +00:00
ExternalContent.pm Bug 25527: Add logger to Koha::ExternalContent 2020-05-18 15:25:03 +01:00
FrameworkPlugin.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Hold.pm Bug 27209: (follow-up) Add ->is_pickup_location_valid 2020-12-28 14:56:57 +00:00
Holds.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
I18N.pm Bug 25517: Look in all possible places for MO files 2020-05-23 08:31:21 +01:00
Illcomment.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illcomments.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequest.pm Bug 24840: (follow-up) Catch some further cases of DateTime->now 2020-04-08 11:54:36 +01:00
Illrequestattribute.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequestattributes.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Illrequests.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Item.pm Bug 27003: [20.05.x] Fix test failure 2021-01-22 20:34:23 +00:00
ItemType.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
ItemTypes.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Items.pm Bug 27580: Handle NULL values correctly in Koha::Items->filter_by_visible_in_opac 2021-02-08 20:29:56 +00:00
KeyboardShortcut.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
KeyboardShortcuts.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Libraries.pm Bug 24368: Remove Koha::Libraries->pickup_locations 2020-05-13 10:30:41 +01:00
Library.pm Bug 27071: (follow-up) Get rid of loop 2021-03-05 17:59:40 +00:00
Linktracker.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Localization.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Localizations.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Logger.pm Bug 25172: Remove _recheck_logfile 2020-04-22 13:43:58 +01:00
Manual.pm Bug 26944: Point help link to automatic item mod in manual 2020-12-09 20:51:21 +00:00
MarcSubfieldStructure.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MarcSubfieldStructures.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MetaSearcher.pm Bug 17515: Order Z3950 server by rank and preserve ordering 2020-11-16 18:31:26 +00:00
MetadataIterator.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MetadataRecord.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
MoreUtils.pm Bug 19069: (follow-up) Remove perlcritic error 2017-10-27 14:58:16 -03:00
News.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
NewsItem.pm Bug 27714: Prevent Koha::NewsItem->author to explode 2021-03-05 14:22:06 +00:00
OAuth.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
OAuthAccessToken.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
OAuthAccessTokens.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Object.pm Bug 27819: Fix Object POD 2021-05-24 19:13:29 +00:00
Objects.pm Bug 27021: Make chaining ->empty always return an empty resultset 2020-12-09 20:03:29 +00:00
Patron.pm Bug 28217: Prevent several non-repeatable attributes to be merged 2021-05-25 11:47:34 +00:00
Patrons.pm Bug 25683: (follow-up) Use COALESCE instead of IFNULL 2020-08-14 21:13:18 +00:00
Plugins.pm Bug 25549: Add error reporting to plugins-home 2020-11-13 16:21:43 +00:00
ProblemReport.pm Bug 4461: Update license statements 2020-04-06 11:18:39 +01:00
ProblemReports.pm Bug 4461: Update license statements 2020-04-06 11:18:39 +01:00
RDF.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Rating.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Ratings.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
RecordProcessor.pm Bug 25008: Overload Koha::RecordProcessor->options to update filters 2020-04-14 08:31:37 +01:00
RefundLostItemFeeRules.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Report.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Reports.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Review.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Reviews.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Schema.pm Bug 11891: (follow-up) remove custom storage class 2014-06-19 11:55:03 -03:00
Script.pm Bug 23571: (QA follow-up) Remove perlcritic warning 2020-04-14 17:24:35 +01:00
SearchEngine.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchField.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchFields.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchMarcMap.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SearchMarcMaps.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Serial.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Serials.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SharedContent.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
SimpleMARC.pm Bug 26894: Handle subfield 0 and delete empty fields 2021-01-22 16:50:02 +00:00
Sitemapper.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Statistic.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Statistics.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationItem.pm Bug 23432: Replace 'die' with 'warn' 2020-11-13 18:29:19 +00:00
StockRotationItems.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationRota.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationRotas.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationStage.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
StockRotationStages.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Subscription.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Subscriptions.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Suggestion.pm Bug 23591: Add some useful methods to Koha::Suggestions 2020-04-14 16:36:13 +01:00
SuggestionEngine.pm Bug 9978: Replace license header with the correct license (GPLv3+) 2015-04-20 09:59:38 -03:00
Suggestions.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Tag.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Tags.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Token.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
UploadedFile.pm Bug 28123: Quote filename value in Content-Disposition header 2021-04-25 16:25:31 +00:00
UploadedFiles.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Uploader.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelf.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfcontent.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfcontents.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfshare.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelfshares.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Virtualshelves.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Z3950Responder.pm Bug 25292: Flushing L1 on every Z3950 server search 2021-01-20 00:50:10 +00:00
Z3950Server.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00
Z3950Servers.pm Bug 24545: Fix license statements 2020-02-24 13:31:26 +00:00