Filtrage des droits

  • Filtrage des droits

    Posté par Hervé sur 4 septembre 2024 à 16h31

    Bonjour.

    J’ai créé une application, dans laquelle apparait plusieurs élements issus d’une List. Cette aplication est destinée à plusieurs de mes collégues, mais je souhaite que certains puissent modifier ces élément, et d’autres utlisateurs ne puissent que les consulter.

    Pour cela, un bouton devient “visible” pour donner accés à l’édition quant un collégue “autorisé”, mais reste “invisible” quand un autre collégue n’est pas autorisé à faire de l’édition.

    J’arrive à récuperer l’indentité de l’utilisateur “User()”, et je souhaite donc l’autoriser ou non, selon une liste que je peux faire évoluer à ma guise.

    Quelqu’un peut-il m’aider à trouver le moyen d’y arriver ?

    Je ne suis pas trés performant dans la programmation, je me forme seul et n’en suit qu’aux balbutiements !

    Merci de votre aide

    Hervé a répondu Il y a 6 jours, 13 heures 2 Membres · 6 Réponses
  • 6 Réponses
  • Geoffroy

    Membre
    4 septembre 2024 à 20h03

    Bonjour Hervé,

    Le plus simple est de créer une variable globale dans le OnStart :

    Set(var_Profil;Lookup(Liste_des_profils;Email=User().Email;Profil))

    Liste_des_profils est ta liste d’utilisateurs qui comprend entre autres une colonne Email et une colonne Profil (avec les valeurs Editeur et Lecteur, par exemple).

    La propriété Visible du bouton d’édition serait alors : var_Profil=”Editeur”

    • Cette réponse a été modifiée Il y a 2 semaines par  Geoffroy.
    • Cette réponse a été modifiée Il y a 2 semaines par  Geoffroy.
  • Hervé

    Membre
    5 septembre 2024 à 20h15

    Bonjour Geoffroy pour ta réponse.

    J’ai oublié la maniére dont j’ai commencé à traiter ma liste de personnes autorisées !

    J’ai créé dans un “screen” une gallery au format “Contact” connectée avec Office365ultilisateur (tout fait dans PowerApps), comme ça je récupère tous les membres de mon organisation en cherhcant simplement le nom de chacun, et du coup je récupère tout le pédigré de chaque personne !

    Les noms que j’ajoute dans cette liste de contact, qui sont rangés dans une variable globale nommée MyPeople, seront des “Editeurs” et les autres “User” non présents dans cette liste seront donc des “Lecteurs”.

    Donc ma question est du coup : comment identifer le “User” en le comparant à cette liste ?

    • Cette réponse a été modifiée Il y a 1 semaine, 6 jours par  Hervé.
  • Geoffroy

    Membre
    5 septembre 2024 à 20h46

    Bonjour Hervé,

    Il existe sûrement plusieurs méthodes mais celle-ci devrait marcher.

    Dans le Visible du bouton, tu mets : LookUp(MyPeople;Nom_du_champ=User().FullName;true) si, par exemple, le champ Nom_du_champ de ta collection contient le nom complet.

  • Hervé

    Membre
    10 septembre 2024 à 15h59

    Bonjour.

    Désolé pour cette reponse tardive, j’étais absent quelques temps…

    Ca marche impec le filtrage 👍 Merci.

    Mais un collégue, m’indique avoir trouvé

    Un collègue me demande d’afficher sur la version publièe, le numéro de la version publiée…Je ne trouve pas cette info ? J’imaginais un truc du style dans le text “Version 1.” & versionpubliée

    Une piste ???

  • Geoffroy

    Membre
    10 septembre 2024 à 18h13

    Bonjour Hervé,

    A ma connaissance, il n’y a pas moyen d’automatiser la version. Il faut le faire à la main.

  • Hervé

    Membre
    12 septembre 2024 à 14h38

    Tant pis, je vais le faire à la mano…

    En cherchant à droite à gauche pour faire des filtrages de droit, je suis tombé sur la formule qui dit :

    – DataSourceInfo(Mabdd;DataSourceInfo.CreatePermission) à mettre dans le “Visible” du bouton

    En fonction des droits dans la partage de ma BDD, qui est une List Microsoft, est-ce que c’est aussi une solution, plus souple que de créer une liste juste avec des noms autorisés ?

    J’ai vu qu’il existait aussi :

    • DataSourceInfo.CreatePermission
    • DataSourceInfo.EditPermission
    • DataSourceInfo.DeletePermission
    • DataSourceInfo.ReadPermission

Connectez-vous pour répondre.