French Power Platform User Group

Please login or click SIGN UP FOR FREE to create your PowerPlatformUG account to join this user group.
Expand all | Collapse all

Récupérer une variable pour un écran de mot de passe

  • 1.  Récupérer une variable pour un écran de mot de passe

    Posted 4 days ago
    Edited by Jonas De Brabanter 4 days ago
    bonjour à tous,

    Je reviens vers vous car je bloque sur un nouveau problème.

    Comme je l'indiquais dans un post précédent, je travaille dans un centre de soins et les données de l'application que je crée sont sensibles en termes de confidentialité.
    J'ai donc créé un écran pour entrer un code pin à l'ouverture. Il s'appelle LoginScreen. Si l'utilisateur met le bon code, il est renvoyé sur la page BrowseScreenResidents. S'il met un mauvais mot de passe, il est renvoyé vers un écran "Jail" ou il doit attendre x secondes avant de pouvoir se reconnecter. Après 3 tentatives infructueuses, il est renvoyé vers un autre écran "JailAdmin" et s'adresser à un Admin pour débloquer l'appli.
    Jusque là, tout va bien, j'y suis parvenu.

    Le soucis, c'est que si l'utilisateur arrive sur JailAdmin, qu'il ferme l'application et la rouvre, il a de nouveau 3 essais.

    Je vais tenter d'être le plus précis possible dans les éléments mis en place qui ont un lien avec mon problème :

    Sur la page LoginScreen :

    Une zone Entrée de texte nommée "TextInput2" ou l'utilisateur entre le code pin

    Un bouton nommé "Button3" sur lequel il clique pour se connecter.

    Voici le code OnSelect de Button3 :

    If(TextInput2.Text = "1234";
    
    Navigate(BrowseScreenResidents;None);;
    Reset(TextInput2)
    ;
    Navigate(Jail;None);;
    Reset(TextInput2);;
    UpdateContext({
        BadPasswordCount: Sum(Value(BadPasswordCount);1)
        })
    );;
    
    If(BadPasswordCount = 3;
    
    Navigate(JailAdmin;None);;
    
    Collect( MyItems; { Item: BadPasswordCount} ) ;;
    
    SaveData( MyItems; "LocalSavedItems" )
    
    )​

    Mon idée était donc de compter le nombre d'erreurs (Via le BadpasswordCount, qui est donc une variable contextuelle). Puis de stocker cette variable dans une collection. J'ai repris l'idée sur la documentation microsoft. Et j'imaginais la stocker en local sur le téléphone de l'utilisateur puisque si un utilisateur bloque son accès, ça doit être juste pour lui.

    Ensuite, à l'ouverture de l'application, j'ai créé un timer sur le LoginScreen d'une durée de 0,1 seconde.
    Sur OnTimerEnd, j'ai mis le code suivant :

    LoadData(MyItems; "LocalSavedItems" );;
    
    If(BadPasswordCount = 3;
    Navigate(JailAdmin;None))


    J'ai testé ça sur mon tél android mais manifestement, le souci vient du fait qu'il ne parvient pas à récupérer la valeur de la variable "BadPasswordCount" sauvée précédemment.

    Quelqu'un pourrait m'aider ?

    J'ai une autre question plus basique. Sur la zone d'entrée de texte "TextInput2" ou l'utilisateur entre le code pin, est-il possible de changer un paramètre pour qu'android ouvre un clavier de chiffres et pas le clavier azerty ?

    J'espère vous avoir transmis tous les éléments utiles...

    Merci d'avance :)

    Jonas



    ------------------------------
    Jonas De Brabanter
    ------------------------------


  • 2.  RE: Récupérer une variable pour un écran de mot de passe

    Gold Contributor
    Posted 2 days ago
    Salut Jonas,
    Avant de tester ta variable il faut que tu l'alimentes avec la valeur qui se trouve dans la collection. Corrige ton code comme ceci :
    LoadData(MyItems; "LocalSavedItems" );;
    Set(BadPasswordCount; First(MyItems).Item);;
    If(BadPasswordCount = 3;
    Navigate(JailAdmin;None))​


    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------



  • 3.  RE: Récupérer une variable pour un écran de mot de passe

    Posted 6 hours ago
    Bonsoir Emmanuel,

    Je te remercie d'avoir regardé pour mon problème. J'ai testé ta solution mais malheureusement ça ne fonctionne pas.
    Quand je regarde dans l'éditeur d'application, je vois que la variable s'enregistre bien dans la collection, mais quand j'essaie sur mon portable, il ne récupère pas la valeur de la variable malgré le code que tu m'as donné.
    As-tu une idée de quoi ça pourrait venir ?

    ------------------------------
    Jonas De Brabanter
    ------------------------------



  • 4.  RE: Récupérer une variable pour un écran de mot de passe

    Gold Contributor
    Posted 4 hours ago
    Bizarre, ça devrait marcher. Y'a pas de raison...
    Par contre, attention, les fonctions SaveData() et LoadData() ne fonctionnent pas sur PC. Elles ne marchent que sur téléphone ou tablette. Donc, impossible à tester dans l'éditeur d'application.
    Je vais faire un test de mon côté pour voir si ça fonctionne bien avec un numérique...

    ------------------------------
    EMMANUEL GALLIS
    Power Platform Consultant
    France
    ------------------------------