Bug 28385: ldap server configuration broken since migration from XML::Simple bug_28385 scan github/bug_28385
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 19 May 2021 10:24:53 +0000 (12:24 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 19 May 2021 10:39:34 +0000 (12:39 +0200)
Bug 28278 removed usage of XML::Simple which had side-affect that
C4::Context->config("ldapserver") returns one more level of hash
based on id of element, so ldap configuration was no longer
available generating error in log:

No ldapserver "hostname" defined in KOHA_CONF: /etc/koha/sites/srvgit/koha-conf.xml

which is very confusing since hostname is there, but we are looking
at wrong place for it.

C4/Auth_with_ldap.pm

index 679c045..face1e4 100644 (file)
@@ -51,6 +51,8 @@ sub ldapserver_error {
 
 use vars qw($mapping @ldaphosts $base $ldapname $ldappassword);
 my $ldap = C4::Context->config("ldapserver") or die 'No "ldapserver" in server hash from KOHA_CONF: ' . $ENV{KOHA_CONF};
+# since Bug 28278 we need to skip id in <ldapserver id="ldapserver"> which generates additional hash level
+$ldap = $ldap->{ldapserver}         or die ldapserver_error('id="ldapserver"');
 my $prefhost  = $ldap->{hostname}      or die ldapserver_error('hostname');
 my $base      = $ldap->{base}          or die ldapserver_error('base');
 $ldapname     = $ldap->{user}          ;