diff --git a/lib/Autodiscover.php b/lib/Autodiscover.php --- a/lib/Autodiscover.php +++ b/lib/Autodiscover.php @@ -156,7 +156,7 @@ if ($value = $this->conf->get('autodiscover', $type)) { $params = explode(';', $value); - $pass_secure = in_array($params[1], array('CRAM-MD5', 'DIGEST-MD5')); + $pass_secure = in_array($params[1] ?? null, array('CRAM-MD5', 'DIGEST-MD5')); $host = $params[0]; $host = str_replace('%d', $this->config['domain'], $host); @@ -165,8 +165,8 @@ $this->config[$type] = array( 'hostname' => $url['host'], 'port' => $url['port'], - 'socketType' => $proto_map[$url['scheme']] ?: 'plain', - 'username' => $this->config['login'] ?: $this->config['email'], + 'socketType' => ($proto_map[$url['scheme']] ?? false) ?: 'plain', + 'username' => ($this->config['login'] ?? false) ?: $this->config['email'], 'authentication' => 'password-' . ($pass_secure ? 'encrypted' : 'cleartext'), ); } diff --git a/lib/AutodiscoverMicrosoft.php b/lib/AutodiscoverMicrosoft.php --- a/lib/AutodiscoverMicrosoft.php +++ b/lib/AutodiscoverMicrosoft.php @@ -159,11 +159,11 @@ $dispname = $xml->createElement('DisplayName'); $dispname = $user->appendChild($dispname); - $dispname->appendChild($xml->createTextNode($this->config['username'])); + $dispname->appendChild($xml->createTextNode($this->config['username'] ?? null)); $email = $xml->createElement('EMailAddress'); $email = $user->appendChild($email); - $email->appendChild($xml->createTextNode($this->config['login'] ?: $this->config['email'])); + $email->appendChild($xml->createTextNode(($this->config['login'] ?? false) ?: $this->config['email'])); $element = $xml->createElement('Type'); $element = $server->appendChild($element); @@ -212,11 +212,11 @@ $dispname = $xml->createElement('DisplayName'); $dispname = $user->appendChild($dispname); - $dispname->appendChild($xml->createTextNode($this->config['username'])); + $dispname->appendChild($xml->createTextNode($this->config['username'] ?? null)); $email = $xml->createElement('AutoDiscoverSMTPAddress'); $email = $user->appendChild($email); - $email->appendChild($xml->createTextNode($this->config['login'] ?: $this->config['email'])); + $email->appendChild($xml->createTextNode(($this->config['login'] ?? false) ?: $this->config['email'])); // @TODO: Microsoft supports also DAV protocol here foreach (array('imap', 'pop3', 'smtp') as $type) { diff --git a/lib/Conf.php b/lib/Conf.php --- a/lib/Conf.php +++ b/lib/Conf.php @@ -139,16 +139,18 @@ // Fall back to whatever is the equivalent of auth_mechanism as the // section (i.e. 'ldap', or 'sql') - $auth_mech = $this->_conf['kolab']['auth_mechanism']; - if (isset($this->_conf[$auth_mech])) { - if (isset($this->_conf[$auth_mech][$key1])) { - return $this->_conf[$auth_mech][$key1]; + if (isset($this->_conf['kolab'])) { + $auth_mech = $this->_conf['kolab']['auth_mechanism'] ?? null; + if ($auth_mech && isset($this->_conf[$auth_mech])) { + if (isset($this->_conf[$auth_mech][$key1])) { + return $this->_conf[$auth_mech][$key1]; + } } - } - // Fall back to global settings in the 'kolab' section. - if (isset($this->_conf['kolab'][$key1])) { - return $this->_conf['kolab'][$key1]; + // Fall back to global settings in the 'kolab' section. + if (isset($this->_conf['kolab'][$key1])) { + return $this->_conf['kolab'][$key1]; + } } return null;