Désactiver timeout session utilisateur

Bonjour,

J’ai créé un utilisateur qui permettra la saisie de temps de production sur un poste dans l’atelier de mon entreprise. J’aimerais faire en sorte qu’il n’y est aucun timeout d’inactivité sur ce compte, afin d’éviter que les personnes allant renseigner des données sur le poste ne se retrouvent avec la page d’identification.

Merci d’avance pour vos réponses
Corentin

Bonsoir,

Voir au niveau de la configuration de PHP et éventuellement rajouter un module de rafraîchissement automatique d’un onglet pour « simuler » une activité.

Cordialement,
Gaëtan.

Bonjour @gmilad,

Merci de ta réponse. Le rafraichissement automatique n’est pas une mauvaise idée, le seul problème est que si la page se rafraichit alors que quelqu’un est en train de saisir des informations, ça ne va pas le faire.
Peut-être faudrait-il donc gérer ça en js sur mon module, et ainsi lancer des timeout asynchrones qui seraient résettés en cas d’action utilisateur… je vais essayer

Bonsoir @Corentin-acropose,

Je pensai plus au rafraîchissement de la page d’accueil dans un onglet à part et non de l’onglet en cours d’utilisation.

Cordialement,
Gaëtan.

Slt @Corentin-acropose

Je comprend pas vraiment le souci …
Ca prend combien de temps de se relogger avec le mdp enregistré ds le navigateur ?

Bonjour @pm17

Très peu de temps, certes, mais le poste étant dans un atelier de production, les ouvriers n’interagiront avec Dolibarr que via une douchette leur permettant de scanner les OF. Certains n’étant pas du tout à l’aise avec l’informatique, d’autres ayant les mains sales et pas forcément le temps d’aller se laver les mains à la moindre pièce réalisée, j’aimerais limiter les intéractions qu’ils auront besoin d’avoir avec le système, et ainsi leur éviter de devoir utiliser une souris.

Et oui @gmilad tu as raison, ça évitera tout risque de rafraichissement lorsqu’un utilisateur sera en train de se servir du système

Slt

La je comprend mieux le besoin :wink:

Bonsoir,

Si une solution fonctionne ne pas hésitez à venir la décrire ici et passer le sujet en résolu, je pense que d’autres personnes seraient intéressé une fois la solution trouvée.

Cordialement,
Gaëtan.

Bonjour
Peut-être mettre au point une ch’tite page qui se rafraîchie toute seule et évite la déconnexion ?
L’idée n’est pas mauvaise mais il faut une page dédiée qui ne fait rien d’autre
@+

Ds un autre navigateur ca peut marcher aussi

non dans un autre navigateur, ce sera une autre session.

Merci à tous pour vos réponses

En effet si l’on lance un autre logiciel de navigation @altatof , mais je pense que @pm17 voulait plutot parler d’une autre fenêtre d’un même navigateur.

Du coup, j’ai fait en sorte que lorsque je vais sur ma page qui nécessite de ne pas être déconnectée, un nouvel onglet s’ouvre automatiquement, et la page sur ce nouvel onglet affiche simplement « Ne pas fermer » et se rafraichit automatiquement toutes les 30 minutes (j’ai, en js, utilisé un setTimeout qui se recréé lors de son exécution afin d’appeler document.location.reload(true)).

Bonjour,

Sinon il faut crée un petit module externe qui rajoute une commande de mise à jour en AJAX mais qui ne recharge pas toute la page (ou juste un petit compteur)

Bonjour @ksar,

Les requêtes AJAX suffisent à reset le timeout d’inactivité ? Car il me semblait avoir développé un module par le passé qui effectuait des requêtes AJAX mais que je me prenais quand même l’écran de reconnexion au bout d’un certain temps sans changer de page

Bonjour,

Tout dépend ce que fait le script qui reçoit la requete AJAX, mais si il utilise les bonnes fonctions de DOlibarr, cela peut maintenir la session ouverte.

Un appel à llxHeader() suffirait ?

Un appel de htdocs/main.inc.php devrait suffir je pense

Après essai ça a l’air de bien fonctionner ! Ce que décrit @ksar fonctionne :slight_smile:
Merci pour votre aide !

1 « J'aime »

Bonjour,

Super !

Si tu peux partager le code que tu as fait, ça serrait super :wink:

Alors tout d’abord, , j’ai créé un script PHP « autoRefresh.php » que j’ai mis sous monmodule/script, dans lequel on a ça :

<?php require '/main.inc.php'; llxHeader(); ?>

Ensuite, dans le fichier JS de ma page, j’ai rajouté ça (pas nécessairement besoin d’un fichier JS dédié, ce code peut être placé dans une balise script sur le fichier de la page) :

function resetTimeoutSession() {
    $.post(
	"script/autoRefresh.php",
	{

	},
	function (newdata) {

	},
	"text"
    )
}
function initCompteAReboursRafraichissement() {
    setTimeout(function() {resetTimeoutSession();    initCompteAReboursRafraichissement()}, 1800000);
} 
initCompteAReboursRafraichissement();`

On créé donc une fonction resetTimeoutSession() contenant une requête AJAX POST vers le fichier autoRefresh.php .
On créé une autre fonction nommée initCompteAReboursRafraichissement(), qui va quant à elle créer un timeout qui s’exécute toutes les 1800000ms, soit toutes les 30 minutes. Lorsque que le timeout expire, on appelle la fonction resetTimeoutSession(), qui va donc effectuer une requête POST pour simuler une activité, et juste après cela on appelle recursivement la fonction initCompteAReboursRafraichissement(), ce qui aura pour effet de remettre un timeout en place. Ainsi, quelque soit la durée d’inactivité, notre session n’expirera pas.

Mon code est évidemment améliorable et pas forcément raccord avec la syntaxe habituelle de Dolibarr, mais je n’ai appliqué là que la méthodologie que j’ai apprise en cours :wink: .

3 « J'aime »