Bug 14339: C4::Context->preference should return undef if DB is not populated
The current behaviour for C4::Context->preference when the DB is not still populated with tables is to return undef. This is used by C4::Auth to identify the need of running the installer. This behaviour got broken by bug 13967, which lets DB errors to escalate and thus Koha gets broken instead of prompting for install. This patch wraps Koha::Config::Sysprefs->find inside an eval and sets undef if needed. To test: - In current master, drop the DB - Load OPAC and Intranet => FAIL: notice an ugly software error. - Apply the patch - Load the OPAC => SUCCESS: Maintenance mode screen is shown - Load Intranet => SUCCESS: You are prompted the DB credentials to run the web installer. - Sign off :-D Tomas Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
3ef7bfc6cf
commit
c671784321
1 changed files with 2 additions and 1 deletions
|
@ -527,7 +527,8 @@ sub preference {
|
||||||
if ( defined $ENV{"OVERRIDE_SYSPREF_$var"} ) {
|
if ( defined $ENV{"OVERRIDE_SYSPREF_$var"} ) {
|
||||||
$value = $ENV{"OVERRIDE_SYSPREF_$var"};
|
$value = $ENV{"OVERRIDE_SYSPREF_$var"};
|
||||||
} else {
|
} else {
|
||||||
my $syspref = Koha::Config::SysPrefs->find( lc $var );
|
my $syspref;
|
||||||
|
eval { $syspref = Koha::Config::SysPrefs->find( lc $var ) };
|
||||||
$value = $syspref ? $syspref->value() : undef;
|
$value = $syspref ? $syspref->value() : undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue