Summary: | API requests don't carry language related information | ||
---|---|---|---|
Product: | Koha | Reporter: | Katrin Fischer <katrin.fischer> |
Component: | REST API | Assignee: | Tomás Cohen Arazi <tomascohen> |
Status: | Pushed to oldstable --- | QA Contact: | |
Severity: | normal | ||
Priority: | P5 - low | CC: | clemens.tubach, fridolin.somers, lucas, lukasz.koszyk, m.de.rooy, martin.renvoize, michaela.sieber, raphael.straub, tomascohen |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30005 | ||
Change sponsored?: | --- | Patch complexity: | Trivial patch |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: |
24.05.00,23.11.02,23.05.08
|
|
Attachments: |
Bug 32551: Regression tests
Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious Bug 32551: Regression tests Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious Bug 32551: Regression tests Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious |
Description
Katrin Fischer
2022-12-30 13:23:14 UTC
As part of our work on an ILL backend we have implemented this solution in Koha/REST/V1/Illrequests.pm. It works really well, but of course only for this small part. Is there way the solution could be generalized? Koha/REST/V1/Illrequests.pm sub list { my $c = shift->openapi->valid_input or return; eval { $ENV{HTTP_ACCEPT_LANGUAGE} = $c->req->cookie('KohaOpacLanguage')->value; }; return try { Any way we could help to move this forward? (In reply to Katrin Fischer from comment #2) > Any way we could help to move this forward? You did. Thanks for the reminder 🎗️ Created attachment 160354 [details] [review] Bug 32551: Regression tests Created attachment 160355 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D Created attachment 160358 [details] [review] Bug 32551: Regression tests Signed-off-by: David Nind <david@davidnind.com> Created attachment 160359 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D Signed-off-by: David Nind <david@davidnind.com> Created attachment 160585 [details] [review] Bug 32551: Regression tests Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Created attachment 160586 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Pushed for 24.05! Well done everyone, thank you! Pushed to 23.11.x for 23.11.02 Backported to 23.05.x for upcoming 23.05.08 |