Browse Source

Bug 25131: Skip loading API plugins if Koha is not installed

This patch adds a check on Koha being actually installed to the
PluginRoutes Mojolicious plugin.

If Koha is not installed, plugin routes won't be tried to get installed.
This has the effect of making the webinstaller functional again (when
enable_plugins is set to 1).

To test:
1. Apply the regression tests patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/REST/Plugin/PluginRoutes.t
=> FAIL: Tests fail!
3. Apply this patch
4. Repeat 2
=> SUCCESS: Tests pass!
5. Reset your working branch
6. Delete your database (e.g. in koha-testing-docker):
   $ mysql -hdb -ppassword
   > DROP DATABASE koha_kohadev;
   > CREATE DATABASE koha_kohadev; \q
7. Set enable_plugins to 1 in koha-conf.xml
8. Restart all:
   $ service memcached restart
   $ koha-plack --restart kohadev
9. Open the staff interface
=> FAIL: Hangs, the logs show nasty errors (koha-plack-err)
10. Apply this patches
11. Restart all
12. Repeat 10
=> SUCCESS: The web installer shows up :-D
13. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
20.05.x
Tomás Cohen Arazi 4 years ago
committed by Martin Renvoize
parent
commit
be618ab400
Signed by: martin.renvoize GPG Key ID: 422B469130441A0F
  1. 10
      Koha/REST/Plugin/PluginRoutes.pm

10
Koha/REST/Plugin/PluginRoutes.pm

@ -45,7 +45,8 @@ sub register {
my @plugins;
if ( C4::Context->config("enable_plugins") )
if ( C4::Context->config("enable_plugins") and
! C4::Context->needs_install ) # Koha is installed
{
# plugin needs to define a namespace
@plugins = Koha::Plugins->new()->GetPlugins(
@ -53,10 +54,11 @@ sub register {
method => 'api_namespace',
}
);
}
foreach my $plugin ( @plugins ) {
$spec = inject_routes( $spec, $plugin, $validator );
foreach my $plugin ( @plugins ) {
$spec = inject_routes( $spec, $plugin, $validator );
}
}
return $spec;

Loading…
Cancel
Save