PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
13 stars 5 forks source link

Amélioration de l'authentification #145

Closed PNPyrenees closed 2 years ago

PNPyrenees commented 2 years ago

Type d'amélioration Configuration

Proposition L'application a besoin d'avoir un utilisateur authentifié pour réaliser des saisies. Ça pose problème si l'utilisateur ne s'est pas loggé avant de partir sur le terrain et qu'il est dans une zone non couverte par le réseaux 3g/4g. Il ne peut pas s'authentifier, et il ne peut donc pas faire de saisie.

Je propose que lors de la première utilisation l'utilisateur soit obligé de se connecter pour lancer la première synchro (normal !). Puis, à partir du moment ou il y a eu une synchronisation, il devrait pouvoir réaliser des saisies de données qu'il soit authentifié ou non. Ce n'est qu'à partir du moment ou une nouvelle synchro est lancée par l'utilisateur qu'il devrait y avoir un contrôle de validité de l’authentification.

SI authentification = OK ALORS ça lance la synchro SINON l'appli demande une nouvelle authentification puis lance la synchronisation.

DonovanMaillard commented 2 years ago

Ce fonctionnement pose soucis, car les datasets, listes de taxons (à l'avenir) etc sont dépendantes de l'utilisateur connecté.

Si par exemple michel (spécialiste papillons) se connecte avec un appareil, saisit ses données, puis part en congés, il va stocker des jeux de données "expertise papillons". Si son téléphone est récupéré par Jacques, ornithologue, celui-ci n'aura pas accès au jeu de données ornitho pour saisir, et à l'inverse aura accès au jeu papillons auquel il n'a normalement pas le droit.

Je pense que c'est une pratique/habitude à prendre : quand on part sur le terrain, on se connecte/on synchronise ses données avant d'aller dans une zone isolée.

PNPyrenees commented 2 years ago

Je comprends ce cas de figure. Mais je ne suis pas certain de voir la différence avec le fonctionnement actuel vu que la durée de vie d'une session est de plus de 24h. Si Jacques ne voit pas le JDD qui le concerne, il n'a qu'à déconnecter l'utilisateur courant et s'authentifie avec ces identifiants. La synchro se lance (comme après chaque authentification) et il voit ses JDD. Ce serait donc à Jacques d'être vigilent et d'anticiper la phase terrain car il prend un smartphone partagé. Peut-être faire apparaître quelque part en première page le nom de l'utilisateur courant.

Chez nous, nos agents on un smartphone attitré. C'est donc toujours le même utilisateur.

Faudrait évaluer quel est le cas le plus fréquent (appareil partagé VS appareil attitré) et tendre vers la solution la moins contraignante.

Je suis d'accord que ce n'est pas forcément prioritaire comme évolution car avec un peu de rigueur ça se passe bien. Le fonctionnement actuel posera problème dans un premier temps mais après quelques ratés je pense que le réflexe seront pris. Mais je pense qu'il y a quelque chose de plus souple à imaginer.

Par contre, c'est un autre sujet mais que ce passe t'il si Michel n'avais pas fait sa synchro et qu'il lui restait des relevé en attente de synchro alors que Jacques le déconnecte en prenant son smartphone ?

camillemonchicourt commented 2 years ago

Oui à mon avis, il ne faut pas se baser sur le cas où un smartphone est passé à une autre personne. C'est un cas plus rare et c'est là que le nouvel utilisateur doit faire une nouvelle synchro avant de partir. Dans la plupart des cas l'appareil est individuel et devrait pouvoir saisir des données si il s'est authentifié et synchronisé une fois. Sans pouvoir être bloqué une fois sur le terrain hors ligne.

TheoLechemia commented 2 years ago

Petite astuce / contournement: si ton utilisateur s'est déjà connecté au moins un fois (il a la liste des taxons des jdd etc..) Lorsque la page d'authentification apparaît, il clique sur le bouton précédent de son tel. Il peut alors faire une saisie sans être authentifié. Seul la synchro, une fois de retour dans une zone avec du réseau renécessitera une authent. @sgrimault tu confirme que c'est l'expiration du cookie qui entraine l'apparition de la page de login ? Si c'est bien ça, tu peux augmenter la durée de ton cookie depuis ton GN.

sgrimault commented 2 years ago

Oui, si l'utilisateur lance explicitement une synchronisation depuis l'écran d'accueil, alors il sera redirigé automatiquement vers l'écran de login. Dans les autres cas (tâches de fond), ce sera juste une notification qui sera envoyée qui si elle est consommée redirigera l'utilisateur vers l'écran de login.

PNPyrenees commented 2 years ago

Merci @TheoLechemia , Ton astuce est intéressante bien que peu intuitive. Je la testerais à l'occasion, quand mon OccTax-Mobile sera dans cette situation. Je pensais bien à la durée du vie du cookies mais ça ne fait que repousser le problème. C'est déjà bien, tu me diras, car ça réduit ces situations mais risque d'être d'autant plus surprenant pour l'utilisateur le jour ou ça lui arrive.

L'idée de cet issue est donc bien de voir s'il est possible de faire mieux.

@sgrimault : Dois-je comprendre que c'est déjà prévus que la prochaine version soit plus souple ? Que la page de login ne sera pas automatiquement ouverte si le cookie à expiré et donc que l'appli permette la saisie même ? (sauf en cas de synchro)

camillemonchicourt commented 2 years ago

Là le soucis remonté ne se produit pas quand l'utilisateur lance une synchronisation manuelle. Dans ce cas, c'est normal de le renvoyer sur le formulaire d'authentification.

Par contre si l'utilisateur est déconnecté et en saisie offline, si on l'envoie sur l'authentification, il ne va pas comprendre qu'il peut quand même faire sa saisie en offline.

C'est dommage.

camillemonchicourt commented 2 years ago

Réglé dans la 2.1.0