Accueil > Forum > > > > Prog avec droits d'utilisateurs
Prog avec droits d'utilisateurs
jeudi 14 juillet 2005 à 09:57:47 |
Prog avec droits d'utilisateurs

penchu
|
Bonjour à tous,
je suis en train d'imaginer une nouvelle application de gestion qui sera utilisée par différentes personnes avec des droits différents pour cette application.
En gros, ce que je compte faire, c'est une table dans une base de données qui reprend le nom du pc du gars qui va travailler avec cette applic, ainsi que les droits sur ce programme. (par exemple, pc-toto a tous les droits, pc-titi n'a droit qu'à visualiser les données dans le programme, donc pas de boutons supprimer, nouveau ou autre disponible pour lui.)
Mais dans le programme, comment puis-je faire ça? Personne n'a une source sur laquelle je peux m'inspirer, ou un tuto ou une bonne explication?
Merci d'avance
|
|
jeudi 14 juillet 2005 à 10:17:03 |
Re : Prog avec droits d'utilisateurs

DARKSIDIOUS
|
Tout dépend du genre de limitation que tu veux faire : il êux s'agit de
ne pas afficher certains menus, de ne pas afficher certaines feuilles,
de ne pas afficher certains contrôles, de ne pas permettre la
modifications de certains champs, etc. Il faut faire au cas par cas.
Dans ce que tu propose, je pense que désactiver certains contrôles pourrait faire l'affaire.
Ce genre de domaine est vaste, et très fastidieux à développer pour
garder une interface uniforme pour tous sans que chacun se rende compte
de ces accès limités. DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
jeudi 14 juillet 2005 à 10:20:52 |
Re : Prog avec droits d'utilisateurs

penchu
|
ben en fait, l'appli que je dois réaliser ne comprendra au maximum que 5-6 boutons et 2-3 sous menus à gérer au niveau des droits d'accès. Ce n'est pas énorme.
Donc en fait, ce que je voudrais c'est lancer l'appli avec les boutons enabled ou disabled en fonction du nom de l'utilisateur qui se connecte. (Ca doit pas être super sécurisé, ça reste dans l'intranet et les gens qui l'utiliseront ne sont vraiment pas experts en informatique)
|
|
jeudi 14 juillet 2005 à 10:38:01 |
Re : Prog avec droits d'utilisateurs

DARKSIDIOUS
|
A ce moment là, je te conseille de faire la chose suivante :
* Stocke dans une table tes droits utilisateurs (un champ Nom utilisateur, et un champ Droits)
* Dans le champ nom, tu stocke le nom que choisiront les utilisateurs
au démarrage de ton prog (ou un nom qui est stocké dans la base de
registre ou autre, bref, un paramètre définit à l'avance pour savoir
qui utilise le prog), et dans le champ droits, utilise un champ
numerique pour stocker, sous forme de flag, les boutons qui sont
enabled ou pas.
* Au démarrage du prog, tu lis les droits de l'utilisateur courant, et
tu active/désactive les boutons/menus selon les droits que tu as donné.
Le champ numérique des droits doit ressembler à un truc comme cà :
* 0 : tout les boutons/menus sont désactivés
* 1 : seul le premier bouton est actif
* 2 : seul le deuxième bouton est actif
* 3 : seuls le premier et le deuxième bouton est actif
* 4 : seul le troisième bouton est actif
* 5 : seuls le premier et le troisième bouton sont actifs
* 6 : seuls le deuxième et le troisième bouton sont actifs
* 7 : seuls les trois premiers boutons sont actifs
* etc.
En gros, pour tester si un bouton est actif :
if (index du bouton)^2 And Droits Then 'il est actif
Cette méthode te permet de rajouter facilement des boutons par la suite
sans devoir toucher à la structure de ta base de données. C'est la
méthode utilisée par les fonctions de l'API entre autre pour les
options d'une fonction, et c'est très efficace ! DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
jeudi 14 juillet 2005 à 11:11:35 |
Re : Prog avec droits d'utilisateurs

penchu
|
* Au démarrage du prog, tu lis les droits de l'utilisateur courant, et tu active/désactive les boutons/menus selon les droits que tu as donné.
Le champ numérique des droits doit ressembler à un truc comme cà : * 0 : tout les boutons/menus sont désactivés * 1 : seul le premier bouton est actif * 2 : seul le deuxième bouton est actif * 3 : seuls le premier et le deuxième bouton est actif * 4 : seul le troisième bouton est actif * 5 : seuls le premier et le troisième bouton sont actifs * 6 : seuls le deuxième et le troisième bouton sont actifs * 7 : seuls les trois premiers boutons sont actifs * etc.
En gros, pour tester si un bouton est actif : if (index du bouton)^2 And Droits Then 'il est actif
Et tu fais comment en code ça? Parce qu'en fait, qqn m'a déjà donné le même principe que ce que tu me donnes là, mais je n'y parviens pas du tout (ni lire les droits de l'utilisateur courant, ni affecter ses droits dans le prog) 
|
|
jeudi 14 juillet 2005 à 12:34:44 |
Re : Prog avec droits d'utilisateurs

DARKSIDIOUS
|
ben déjà, est-ce que tu as déjà utiliser une base de données ?
Car si ce n'est pas le cas, lit des tutoriaux sur les bases de données
pour comprendre comment ca marche avant d'essayer de faire ce genre de
chose, sans cà, je ne pourrais pas tout t'expliquer. DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
jeudi 14 juillet 2005 à 12:53:16 |
Re : Prog avec droits d'utilisateurs

penchu
|
si si les bases de données, j'en ai déjà fait, mais j'avoue que j'ai un peu de mal. Tu peux expliquer, je comprendrais bien.
|
|
jeudi 14 juillet 2005 à 13:15:44 |
Re : Prog avec droits d'utilisateurs

DARKSIDIOUS
|
Donc, tu ouvre un recordset sur la table contenant les utilisateurs avec leurs droits.
Pour l'enregistrement :
Dim lDroit As Long
If PremierBouton.Visible then Let lDroit = lDroit Or 1 If DeuxièmeBouton.Visible then Let lDroit = lDroit Or 2
If TroisièmeBouton.Visible then Let lDroit = lDroit Or 4
If QuatrièmeBouton.Visible then Let lDroit = lDroit Or 8
If CinquièmeBouton.Visible then Let lDroit = lDroit Or 16
If SixièmeBouton.Visible then Let lDroit = lDroit Or 32
If PremierMenu.Visible then Let lDroit = lDroit Or 64
If PremierMenu.Visible then Let lDroit = lDroit Or 128
If PremierMenu.Visible then Let lDroit = lDroit Or 256
La variable lDroit stocke donc le nombre à enregistrer dans le champ
Droit de l'utilisateur, et ca te permettra de savoir quel bouton/menu
sera visible pour tel ou tel utilisateur. (bien entendu, c'est à toi de
définir lesquels seront visibles ou pas avant de lancer
l'enregistrement).
Et pour le chargement :
If lDroit And 1 Then PremierBouton.Visible = true
If lDroit And 2 Then PremierBouton.Visible = true
'etc.
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
jeudi 14 juillet 2005 à 13:30:13 |
Re : Prog avec droits d'utilisateurs

penchu
|
Mais voila, on en revient au même problème que j'ai eu avec celui qui m'a expliqué cette méthode aussi.
Je comprends pas du tout ces histoires de and et de or. Et puis, ADODB, j'y touche plus du tout depuis un an au moins, je suis toujours avec ADO.Net maintenant.
Bon en fait, comme je me sers du nom de l'utilisateur du pc pour se connecter au programme (et avoir ainsi les droits appropriés), j'ai juste à faire une requete : "SELECT * FROM users WHERE nom_pc = '" & Environment.Username & "';" ??
Et une fois que j'ai exécuté ma requête, je fais quoi....
Ya vraiment pas moyen de mettre le code complet histoire de vraiment bien comprendre comment ça marche??? Mais vraiment complet complet depuis la connexion à la db jusqu'à la fin? Ce serait vraiment utile je pense, parce que tu n'es pas le 1er à m'expliquer ce truc et que je pige pas (et que j'aimerais vraiment piger)
Pour info, voici la strucutre de mes tables, peux-tu me dire également si c'est comme ça qu'il faut faire???

|
|
jeudi 14 juillet 2005 à 14:28:57 |
Re : Prog avec droits d'utilisateurs

DARKSIDIOUS
|
Ben le code que je t'ai passé est quasiment complet :
Tu fait ta requête avec "SELECT * FROM users WHERE nom_pc = '" &
Environment.Username & "';" que tu stocke dans oRecordset par
exemple.
Ensuite :
Dim lDroit As Long
If PremierBouton.Visible then Let lDroit = lDroit Or 1
If DeuxièmeBouton.Visible then Let lDroit = lDroit Or 2
If TroisièmeBouton.Visible then Let lDroit = lDroit Or 4
If QuatrièmeBouton.Visible then Let lDroit = lDroit Or 8
If CinquièmeBouton.Visible then Let lDroit = lDroit Or 16
If SixièmeBouton.Visible then Let lDroit = lDroit Or 32
If PremierMenu.Visible then Let lDroit = lDroit Or 64
If PremierMenu.Visible then Let lDroit = lDroit Or 128
If PremierMenu.Visible then Let lDroit = lDroit Or 256
Tu enregistre ca dans ta table :
let oRecordset.Fields("Rights").Value = lDroit
Ca te permet donc d'avoir les droit pour 1 utilisateur, modifie les
propriétés Visible de tes boutons/menus, et enregistre de nouveau pour
un autre utilisateurs, etc.
Après à l'ouverture :
If oRecordset.fields("Rights").value And 1 Then PremierBouton.Visible = true
If oRecordset.fields("Rights").value And 2 Then PremierBouton.Visible = true
'etc.
La je peux pas faire plus explicite que cà !
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
|
|
Cette discussion est classée dans : programme, pc, prog, utilisateurs, droits
Répondre à ce message
Sujets en rapport avec ce message
probleme de droit [ par xavier77 ]
Bonjour à tous, J'ai crée un group de projet contenant un exe et 2 dll . Tout marche parfaitement. Mon exe et mes dll sont sur un serveur et les utili
multiple utilisateurs [ par arthur1952 ]
bonjourvoila mon probleme, j'ai développé un programme sous exel qui est utilisé par plusieurs personne sur le meme ordinateur.a l'ouverture du progra
pb de lancement de prog sous windows 98 [ par arpege ]
j'ai réalisé un programme en VB6 se connectant à une base de donnée type access.Le programme a été réalisé ,compilé et "empacketé"sous windows XP.Lors
compatibilité pc<->mac [ par i0raeK ]
Salut tout le monde !!!voila j'ai fais une programme VBA sur mon pc avec excel 2000 pensant que la compatiblite pc mac sous excel était assuré sachant
programme marche plus une fois sur pocket pc [ par domsig ]
bonjour à tous(toutes) j'ai commencé à écrire un programme en VB pour mon pocket pc avec visual studio.net 2003 ; ce programme entre autres affiche un
EXECUTION de mon prog sur autre machine [ par sam469 ]
bonjour a tous jais un probleme,je n'arive pas a faire fonctionner mon logiciel sur un autre pc,il me di VB6FR.DLL manquand ou inexistant,je ne sais p
Lancer un programme sans l'installer sur le Pc. [ par gagueur ]
Bonjour , est ce que avec Visual Basic c'est possible de faire une application qui n'a pas besoin d'étre installer sur le Pc , c'est a dire que le pro
Executer un programme et/ou des commandes en tant qu'administrateur du domaine ....VB6 [ par vbsurfer ]
SalutJe voudrais savoir si on peut créer un programme en vb6qui a les droits administrateur du domaine sans être nous meme admin du domaineJ'explique
Lancer un prog derriere un autre [ par jeremia ]
Bonjour,Je cherche le moyen de lancer des programmes les uns derrieres les autres (mais pas de manières simultanées).C'est-à-dire que je veux par exem
programme s'installe tout seule dans un autre pc [ par sitemo ]
je veux cree un programme que lorsque tu clike sur bouton le programme se lance automatiquement ? quelquun a une solution merci d'avance MK
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|