cudenetf
Messages postés448Date d'inscriptionmardi 20 septembre 2005StatutMembreDernière intervention26 juillet 2012
-
15 juil. 2011 à 16:17
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024
-
28 juil. 2011 à 21:09
Bonjour,
je cherche encore et toujours de pouvoir gérer de manière simple des droits d'acces a des menus ou fonctions selon les utilisateurs.
J'ai une application winform.
Au depart j'ai défini pour des utilisateurs des niveaux : 1 -> 5
1 le plus fort pas de restriction
5 le plus faible limité
mais c'est trop "rigide", je veux pouvoir pour chaque utilisateur définir les menus et fonctions qu'il pourra executer
je voudrais quelque chose de plus "fin" et je ne sais pas comment m'y prendre.
Je voudrais pouvoir définir des profils types d'une part avec des acces ou non a des menus/fonctions selon le modele : ex admin / gerant / employe ...
puis pour chaque utilisateur pouvoir "redéfinir" les accès => ajouter ou enlever tel fonction ou menu ( ou meme control sur un formulaire : ex : un bouton enregistrer accessible pour certains et pas pour d'autre de meme la fonction enregistrer si elle peut etre appelé par un raccourci clavier ne doit pas fonctionner)
Une methode que je vois mais qui me semble colossale :
-créer une table avec l'ensemble des fonctions du logiciel ( donc tous les menus , puis tous les boutons/fonctions)
et associer pour chaque utilisateur une ligne de cette table avec oui/non (true/false) dans chaque colonne
(si j'ai 100 formulaires avec 20 fonctions chacun , ca me fait une table avec 2000 colonnes + 1 pour le n° d'utilisateur)
ensuite dans chaque menu , il faudrait uun if pour chaque fonction , est elle autorisée ou non => donc reprendre tous les formulaire et mettre des if partout...
(20000 encore a priori)
mais cela me semble absolument enorme comme travail.
Existe t il quelque chose d eplus simple et/ou efficace pour faire ce genre de chose ?
C'est quand meme quelque chose d'assez courant comme dmeande non ?
je cherche autre chose de plus simple si cela est possible
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 15 juil. 2011 à 22:02
Bonjour,
Je te propose une autre vue de ton pb :
Imagine une liste qui recense les contrôles soumis à droits, à chaque contrôle, un ID unique est assigné.
Ensuite, une table listant les utilisateurs, les contrôles (ID) et si l'accès est autorisé ou pas.
Tu n'as plus qu'à demander à une fonction codée spécialement en lui passant la Form, à partir du nom de la Form, cette fonction récupère tous les contrôles renseignés pour l'utilisateur et y applique les droits afférent.
Certes, faire des groupes d'utilisateurs peut être une solution pour limiter le nombre de droits à assigner.
Et cette technique a une limite, car si tu renomme un contrôle, il faudra redéfinir les droits.
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 28 juil. 2011 à 21:09
Bonjour,
Il te faut lister tes contrôles présent sur ta form : Conteneur.Controls
Attention, les contrôle conteneur (GroupBox, Panel, ... Contiennent une partie des contrôles.
Ensuite, tu peux récupérer leur nom : Controle.Name
Et en les associant avec le nom de la Form, tu as une identification unique.