Erreur 401 ouverture page plugin

Bonjour,
J’ai un souci avec mon plugin et uniquement avec la box Luna apparemment.
Lorsque les utilisateurs veulent aller sur la page du plugin via le menu plugin, ils obtiennent une erreur 401, qui est provoquée par les lignes de code suivantes du fichier /desktop/php/wifiliightV2.php:

if (!isConnect('admin')) {
    throw new Exception('Error 401 Unauthorized');
}

Si je retire cette partie, l’erreur 401 disparait mais il y a du coup un trou de sécurité.
Pourquoi sur la luna uniquement ?
Pourquoi seulement mon plugin ?
Quelle particularité sur la luna ?
Pouvez-vous m’aider ?
Merci

encore une Luna qui me fait cette erreur 401 et qui nécessite que je commente les 3 lignes.
Personne n’a ce souci ?
Si finalement :

et semble lié à débian11
bien que j’ai testé debian11 et que cela fonctionne.

voilà l’horreur qui fait que ça fonctionne :;

if (strtolower(jeedom::getHardwareName()) != "luna") {
	if (!isConnect('admin')) {
		throw new Exception('401 - Accès non autorisé');
	}
}

Ça ne « fonctionne » pas ça… l’authentification est juste désactivée

J’ai bien mis, l’horreur.
N’ayant pas de luna, je ne peux tester et visiblement, il y a un autre plugin qui a le même souci.
Soit un utilisateur non admin parvient à arriver sur la page de config du plugin
Soit un utilisateur admin n’est pas vu comme tel en arrivant sur la page d’affichage du plugin

Et un isConnect seul (non admin) ça passe?

Je vais regarder avec ceux qui ont ce souci avec Luna.
Mais tous les plugins ont ces quelques lignes.

L’idée n’est pas d’utiliser ce code mais de debug.
Comprendre si c’est le test sur admin qui pose problème ou l’appel de la fonction.

Rien dans le log http.error?

n’ayant pas de luna, je vais trouver un utilisateur et deboguer avec lui.
Merci pour ton retour

Un utilisateur a essayé avec :

	if (!isConnect()) {
		throw new Exception('401 - Accès non autorisé');
	}

c’est pareil.
le code de Isconnect est :

function isConnect($_right = '') {
	if (session_status() == PHP_SESSION_DISABLED || !isset($_SESSION) || !isset($_SESSION['user']) || !is_object($_SESSION['user'])) {
		return false;
	}
	$user = user::byId($_SESSION['user']->getId());
	if (!is_object($user)) {
		return false;
	}
	if (!$_SESSION['user']->is_Connected()) {
		return false;
	}
	if ($_right != '') {
		return ($_SESSION['user']->getProfils() == $_right);
	}
	return true;
}

Voilà les tests :

log::add("wifilightV2","debug","php:".session_status());
log::add("wifilightV2","debug","isset1:".isset($_SESSION));
log::add("wifilightV2","debug","isset2:".isset($_SESSION['user']));
log::add("wifilightV2","debug","isset3:".is_object($_SESSION['user']));
$user = user::byId($_SESSION['user']->getId()); // erreur
log::add("wifilightV2","debug","object:".is_object($user));
log::add("wifilightV2","debug","connec:".$_SESSION['user']->is_Connected());

et bien j’obtiens :

0000|[2023-08-03 15:42:07]DEBUG : php:1
0001|[2023-08-03 15:42:07]DEBUG : isset1:1
0002|[2023-08-03 15:42:07]DEBUG : isset2:
0003|[2023-08-03 15:42:07]DEBUG : isset3:
Call to a member function getId() on null // notée erreur ci dessus

Donc la première fois que l’utilisateur sur une luna va sur la page wifilightV2.php pour configurer le plugin la variable de session "user’ n’existe pas et erreur 401
Par contre, si l’utilisateur recharge la page sur l’erreur 401, la variable est positionnée.
Visiblement, seulement sur mon plugin.

voilà ce que j’ai trouvé comme solution qui consiste à recharger la page si user n’est pas créé :
Au début de wiflightV2.php

if (strtolower(jeedom::getHardwareName()) == "luna") {
	if (!isset($_SESSION['user'])){
		if (!isset($_GET['refresh']) && !isset($_POST['refresh'])) {
			if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') 
				$url = "https"; 
			else
				$url = "http";
			$url .= "://"; 
			$url .= $_SERVER['HTTP_HOST']; 
			$url .= $_SERVER['REQUEST_URI'];
			$url .= "&refresh=1";
			log::add("wifilightV2","debug","url:".$url);
			header("Location: $url");
		}
	}
}

il suffit donc de recharger la page.
C’est un contournement d’un problème plus profond je pense.