IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Gestion de droits, feuilles et Action


Sujet :

Langage Delphi

  1. #1
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut Gestion de droits, feuilles et Action
    Bonjour,

    Mon application est développéeen MDI. Les différentes feuilles sont accessibles par le biais d'un menu, gérer par un Action Manager.

    Une feuille de connexion permet d'attribuer différents droits selon la fonction de l'utilisateur. La gestion des droits donne lieu à l'accessibilité de certains liens dans le menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAction.Enabled := true;
    Quand les droits ne donnent pas accès à un feuille, l'action est à ce statut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAction.Enabled := false;
    Alors mon problème : je possède une feuille de connexion reliée à une base de données qui vérifie le login, le mot de passe et récupère le niveau des droits : 0, 1, 2, 10.

    Selon le niveau extrait, les actions sont gérées différemment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
            if self.zsDroit.Text = '0' then
              begin
                showmessage('lecture');
                frmMain.actParamCtrl.Enabled := false;
                frmMain.actSaisieCtrl.Enabled := true;
                frmMain.actCreateCtrl.Enabled := false;
                frmMain.actLog.Enabled := true;
                frmMain.actDeLog.Enabled := true;
                frmctrlmp.actAnnuler.Enabled := false;
                frmctrlmp.actAjouter.Enabled := false;
                frmctrlmp.actModifier.Enabled := false;
                frmctrlmp.actSupprimer.Enabled := false;
                frmctrlmp.actValider.Enabled :=  false;
                frmctrlmp.actCloturer.Enabled := false;
                frmctrlmp.actAjouterRecep.Enabled := false;
                frmctrlmp.actModifierRecep.Enabled := false;
                frmctrlmp.actSupprimerRecep.Enabled := false;
                frmctrlmp.actValiderRecep.Enabled := false;
                frmctrlmp.actAjouterRecep.Enabled := false;
              end;
    Les actions de la feuille frmMain sont gérées sans problème mais celles de frmctrlmp non. J'obtient une erreur de mémoire ( comprenant uniquement des chiffres et des lettres donc problème d'adressage mémoire du système d'exploitation).

    J'ai précisé dans la partie uses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    implementation
     
    uses uMain, _uData, uCtrlmp;
    Pour moi, l'erreur viens du fait que je modifie les propriétés d'une feuille qui n'est pas encore créé : je créais et détruis la feuille en fonction de la volonté de l'utilisateur ( click dans le menu ).

    Je souhaite continuer à utiliser ce système de gestion des feuilles ( création et destruction ) mais du coup je ne vois pas comment résoudre mon problème !

    Si vous avez la moindre idée, je suis preneuse !

    NZs

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Bon je ne suis pas certain d'avoir compris ...
    Pour ce genre de problème je te conseille de créer TOUTES les Forms utilisables et ensuite de gérer leur accès au niveau de l'action (ou en dévalidant le bouton qui permet d'y accéder).

  3. #3
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Je dévalide lors de la création d'une feuille le bouton qui permettait d'y accéder.

    Je ne vois aussi que la solution de créer les feuilles lors de l'attribution des droits et de les détruires si changement de droits, mais je me demandais si la mémoire allouée ne serait pas plus importante en conséquent ? Et donc si au niveau optimisation c'était 'bien' ou pas

    Et il me semble bien que tu as compris mon problème car tu n'a pas répondu totalement à côté !

    NZs

  4. #4
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Je viens de tester en créant mes feuilles dès l'attributions des droits mais cela ne convient pas parce que toutes les feuilles s'ouvrent alors et je ne peux pas les cachers car l'application est développée en MDI.

    Or je voudrais qu'après s'être connecté, l'utilisateur se retrouve sur ma feuille principale sur lequel a été intégré le menu.

    Je vois plus trop comment je pourrais faire du coup

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonsoir!

    et en mettant le code dans le OnCreate de la dernière form crée?

    à plus

  6. #6
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Ben je vois pas trop comment faire car le code change en fonction des droits attribués. Et surtout que je ne veux créer aucune feuilles à l'avance pour qu'elles ne s'affichent pas !

  7. #7
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Je n'utilise jamais le MDI mais ne peux tu mettre un visible := false dans le OnCreate des Feuilles.
    Tu passes le visible := true quand on appuie sur le bouton...

  8. #8
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    C'est une bonne idée, je vais tester ce passe pas, cette méthode pourrait palier à la propriété hide du coup je ne sais même pas pourquoi je n'y ai pas pensé avant !

  9. #9
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Bon, j'obtient le message d'erreur :

    Impossible de cacher une fiche en MDI

  10. #10
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    J'ai mal exprimé mon problème ou personne n'a de solution ?

    Pourtant, il doit bien il y avoir une technique !

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut C'est pourtant simple
    Moi aussi j'ai une application avec un menu qui s'affiche en fonction des utilisateurs. les liens de mon menu sont dans une table que j'ai appelé droits. La feuille principale est celle de connexion. Quand l'utilisateur saisie son mot de passe et son login. Ses droits sont recherchés dans la table droit. ses données sont récupérées et envoie à l'évenement onshow de la fiche menu qui l'active correctement. Si ça ne va pas toujours je peux te filer mon code pour que tu voies un peu. Bien sûr ce sera avec la BD.

  12. #12
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    Merci pour le principe.

    Je vous un peu mieux le principe, je suppose que je peux aussi le réalisé si je démarrage sur ma page principale et qu'ensuite j'ouvre une fenêtre de connexion ?

    Sinon moi aussi et pour gérer les droits ensuite à l'intérieur des feuilles : une feuille doit s'afficher un coup avec tous les boutons et un coup sans tous les boutons en fonction des droits. Dois-je alors inclure une variable générale à l'application, sur le OnCreate, je réalise une condition : si le droit et ainsi alors appeler telle procédure et sinon appeler celle-la ?

    Merci

    NZs

  13. #13
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut Non je ne crois pas
    En fait mon programme gère un magasin de vente. Le principe est simple. Il ne peut ouvrir que les fiches donc on lui a donné les droits. ça m'évite de coder les boutons. Je fais le test juste une fois et ça suffit quant il se logue. Là j'ai mis différement les interfaces de saisie et de consultation. ça permet qu'en fonction des utilisateurs tu peux juste consulter. Par exemple celui qui facture peut voir la quantité disponible mais pas la modifier.

  14. #14
    Membre régulier Avatar de Nzs26
    Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 136
    Points : 76
    Points
    76
    Par défaut
    D'accord!
    Je suis partie un peu sur ce principe.

    L'application est démarrer, seul un formulaire peut être consulté ( en mode sans bouton). L'utilisateur peut aller se connecter. Je stock alors la valeur du droit dans une variable globale à l'application.

    Ensuite, sur chaque feuille je fais un test selon le droit ( IF ) et j'affiche différentes parties graphique en fonction de ma condition.

    Voila

    Merci à vous :p

    NZs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion de droit entre les feuilles
    Par amalane dans le forum QlikView
    Réponses: 1
    Dernier message: 09/04/2013, 11h06
  2. Idées pour une gestion de droits d'accès a des Forms ?
    Par sfxElrick dans le forum Composants VCL
    Réponses: 17
    Dernier message: 26/01/2005, 17h00
  3. Gestion des droits
    Par totop dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/01/2005, 10h49
  4. Gestion des droits d'accès
    Par soulryo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 11h50
  5. Gestion De Droits Grant Revoke
    Par donde dans le forum Informix
    Réponses: 5
    Dernier message: 15/01/2003, 12h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo