Likely this is a PHP8 issue that's been fixed since April. PHP8 broke a lot of existing code (and continues to break more code with each release), and you need either stay on PHP7 or run a very recent version of Observium. In this case PHP8 is generating an error because $config['auth_ad_groups'] is not an array. This code was legal in PHP7, but is no longer in PHP8. adam. Sent from Mailspring (https://getmailspring.com/), the best free email app for work On Oct 21 2024, at 12:50 am, dwalcott--- via observium <[email protected]> wrote: > Hey everyone, > > I had a functioning install of Observium 24.4.13528 (26th April 2024) running > on Ubuntu 24.04.1 LTS, just using mysql for auth. > I then tried to switch to AD by entering info in the "AD" section of the > /settings web UI config page. Once I did that, I got the error below when > trying to log in. > I switched back to mysql login, by manually changing > $config['auth_mechanism'] = "ad"; to $config['auth_mechanism'] = "mysql"; in > config.php, and am able to log in again. > Can anyone point me in the direction of what's wrong? > > > > array_keys(): Argument #1 ($array) must be of type array, null given in > /opt/observium/html/includes/authentication/ad.inc.php:38 > #0: (unknown function) called at > [/opt/observium/html/includes/authentication/ad.inc.php:38] > 33: } > 34: } > 35: > 36: // If no access control groups are specified, use the defined level > groups as access control > 37: if (!is_array($config['auth_ad_group'])) { > 38: $config['auth_ad_group'] = array_keys($config['auth_ad_groups']); > 39: } > 40: > 41: // Synthesize Base DN from configured domain name, if it is not set > 42: if (!isset($config['auth_ad_basedn'])) { > 43: if (isset($config['auth_ad_domain'])) { > #1: array_keys called at > [/opt/observium/html/includes/authentication/ad.inc.php:38] > 33: } > 34: } > 35: > 36: // If no access control groups are specified, use the defined level > groups as access control > 37: if (!is_array($config['auth_ad_group'])) { > 38: $config['auth_ad_group'] = array_keys($config['auth_ad_groups']); > 39: } > 40: > 41: // Synthesize Base DN from configured domain name, if it is not set > 42: if (!isset($config['auth_ad_basedn'])) { > 43: if (isset($config['auth_ad_domain'])) { > #2: include_once called at > [/opt/observium/html/includes/authenticate.inc.php:126] > 121: // Always load mysql as backup > 122: include_once($config['html_dir'] . > '/includes/authentication/mysql.inc.php'); > 123: > 124: // Load primary module if not mysql > 125: if ($config['auth_mechanism'] !== 'mysql') { > 126: include_once($auth_file); > 127: } > 128: > 129: // Include base auth functions calls > 130: include_once($config['html_dir'] . > '/includes/authenticate-functions.inc.php'); > 131: } else { > #3: include called at [/opt/observium/html/index.php:72] > 67: $_SERVER['PATH_INFO'] = $_SERVER['PATH_INFO'] ?? > ($_SERVER['ORIG_PATH_INFO'] ?? ''); > 68: > 69: // Clean global $vars variable, it populated only after correct > authenticating > 70: unset($vars); > 71: > 72: include($config['html_dir'] . "/includes/authenticate.inc.php"); > 73: > 74: // Default theme set in global or user setting > 75: if ($config['web_theme_default'] === 'system' && > isset($_COOKIE['screen_scheme'])) { > 76: $theme = $_COOKIE['screen_scheme']; > 77: } else { > _______________________________________________ > observium mailing list -- [email protected] > To unsubscribe send an email to [email protected] >
_______________________________________________ observium mailing list -- [email protected] To unsubscribe send an email to [email protected]
