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]

Reply via email to