Savoir quel utilisateur est connecté

Bonjour à tous,
Je suis en train de créer un plugin et je souhaiterais déterminer le nom de l’utilisateur utilisant actuellement le plugin. Ce qui équivaut à savoir quel utilisateur est actuellement connecté.
J’ai donc récupérer la liste de tous les utilisateur et ai utiliser la méthode user::is_Connected() sur chacun d’eux mais cette dernière ne fonctionne pas. Aucune valeur n’est affichée et exécution du script est carrément arrêtée.

$obj = json_decode(file_get_contents('php://input'));
$users = user::all();
// print_r($users);
for ($i = 0; $i < count($users); $i++) {
    print_r("username: ".$users[$i]->getLogin()."\n");
    print_r($user[$i]->is_Connected());
} 

Edite:
Je viens de trouver sur sujet suivant Scénario utilisateur connecté - Forum Communauté Jeedom que la fonction user::is_Connected ne fait pas pas exactement ce que son nom décris.
Je cite @Bercolly : « En regardant le code jeedom, la fonction que tu utilises is_Connected ne fait pas vraiment ce que tu attends (son nom est trompeur!).
En fait le code de is_Connected retourne true si l’id du login fourni est numérique et si le login de cet id est non-vide ! »

Edite 2:
C’est apparemment impossible:

Comment puis-je faire ?
Merci et bonne journée.

Je m’inscrit sur ce fil pour voir si il y à des réponses …

Hé oui c kiki ka appuyer sur le bouton ?

Bon ce que je sais c’est que l’on peut connaître quels sont les utilisateur connectés mais ça ne solutionne pas le problème …

Le seul contournement que j’ai trouvé est de créer une commande par utilisateur et par ses droits qu’elle ne soit visible que par lui … (c’est lourd)

On peut ensuite tester par ID de commande pour déterminer qui a fait quoi …

2 « J'aime »

Bonjour,
Connecté où et comment ?
La plupart du temps un plug-in tourne « tout seul »
Si une commande est utilisé dans un scénario par exemple il n’y a pas d’utilisateur.

Je souhaiterai savoir quel utilisateur utilise actuellement l’interface de mon plugin afin de pouvoir afficher différentes interfaces.

Merci pour l’astuce, je vais tester cette solution le temps trouver une autre.

Bon fait toi un café, je te l’offre :wink:
Oublie le mot plugin.
Essai te te mettre dans le contexte je te donne un exemple concret:

Nous somme 4 utilisateurs connecter avec un login différent.
Sur le dashboard il y à une tuile avec un bouton ALARME.
Une des 4 personnes appuie sur ce bouton et cela active un scénario.

Dans ce scenario nous aimerions savoir qui a appuyer sur ce bouton ?

Cela me parait une mauvaise idée, je ne suis pas certain de ce que tu entend par interface;
en tout cas ne fait pas cela sur les widgets qui sont en cache et donc indépendant de l’utilisateur

sinon avec ce code (dans un plugin, pas dans un scénario) tu peux récupérer l’utilisateur actuellement connecté… (mais je répète, tu n’auras pas toujours un utilisateur, ca dépend où dans le plugin

		if (isConnect()) {
			if(isset($_SESSION['user']) && is_object($_SESSION['user'])){
				$user = user::byId($_SESSION['user']->getId());
				if(is_object($user)){
					log::add(__CLASS__, 'debug', 'user session:'.$user->getLogin());
				}
			}
		}
1 « J'aime »

Merci beaucoup, c’est exactement ce que je cherchais :pray:

Et après comment on fait si il y a plus d’un utilisateur ?

Je viens de tester dans 2 navigateurs ouverts simultanément et ça fonctionne bien si c’est bien ce dont tu parlais.

Slt. Question d’accord tu sais qui est connecté.
Mais lequel a appuyé sur le bouton « alarme off »
Je cherche la même fonctionpour mon alarme…
Avec le badge je sais qui a désactivé. Mais avec l’application non.
Doudou

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.