La gestion des comptes utilisateurs et de leurs rôles dans une application est facilement gérable avec le Groupware utilisateur de Windev. Cette fonctionnalité peut être implémentée avec MySQL. Cet article en décrit la mise en œuvre et un exemple d’utilisation.
Préparation
Vérifier que le driver d’accès natif MySQL est installé
Puisqu’il s’agit d’utiliser MySQL, il faut que le driver d’accès natif à MySQL soit installé sur le poste de développement. C’est un préalable indispensable. Ce driver est téléchargeable gratuitement sur le site PC Soft.
Créer une base de données et un compte utilisateur sur MySQL
Pour accueillir le futur Groupware, il faut une base de données dédiée à cet usage. Il faut également créer un compte pour accéder à la base.
Ouvrez une connexion MySQL et tapez les commandes suivantes.
Pour créer la base :
CREATE DATABASE groupware_windev;
Pour créer l’utilisateur :
Attention : selon la portée que vous voulez donner à cette connexion, la déclaration du host variera. « localhost » pour le plus restrictif jusqu’à « % » pour le plus étendu.
CREATE USER cnx_groupware IDENTIFIED BY ‘motdepasse‘;
Le fait de ne pas préciser le host revient à utiliser %
Enfin, donnez les droits à cette connexion sur la base :
GRANT ALL ON groupware_windev.* TO cnx_groupware;
Utiliser le Groupware dans une application Windev
Activer le Groupware dans le projet
Pour utiliser le groupware dans une application Windev, il faut d’abord l’activer dans le projet.
Allez dans le menu « Projet » puis cliquez sur la rubrique « Groupware utilisateur ».
Puis sélectionnez « Groupware utilisateur automatique » dans l’onglet « Intégration »
Et sélectionnez « Lancement manuel » dans l’onglet « Exécution ».
Initialiser l’application en déclarant la connexion au Groupware
Dans le code d’initialisation de l’application, ajoutez le code suivant :
SI gpwOuvreConnexion(« CnxGPW« ,« cnx_groupware« ,« motdepasse« ,« localhost« , « groupware_windev« ,hAccèsNatifMySQL) = Faux ALORS
Erreur(ErreurInfo())
FIN
Ce code déclare et établit la connexion avec la base de données du Groupware. A la première connexion, les tables nécessaires seront créées dans la base.
Établir la connexion avec le Groupware
Dans un menu ou un bouton de commande proposant la Connexion, ajoutez le code suivant :
SI gpwOuvre() = gpwOk ALORS
FEN_Accueil..Titre = gpwRecupInfoUtilisateur(gpwInfoLogin)
SINON
Erreur(ErreurInfo())
FIN
Ce code ouvre la connexion et demande à l’utilisateur un identifiant et un mot de passe.
A la toute première connexion, vous devez vous connecter avec l’identifiant « Superviseur » et définir un mot de passe.
Un superviseur peut ensuite « Lancer l’application », « Configurer le groupware » ou « Fermer l’application’.
En cliquant sur « Configurer le groupware » vous entrez dans l’outil d’administration qui permet de créer des comptes utilisateurs, des groupes et de gérer les droits de ces utilisateurs et groupes sur les objets de l’application.
Octroyer des droits par le code
Il est également possible d’octroyer des droits à l’utilisateur en cours par le code.
Si par exemple, on veut donner accès au contenu d’un menu en fonction de l’appartenance à un certain groupe (« Commerciaux » dans l’exemple), on pourra tester cette appartenance en interrogeant gpwRecupInfoUtilisateur(gpwInfoGroupe). Cette fonction retourne la liste de tous les groupes auxquels appartient l’utilisateur connecté :
SI Contient(gpwRecupInfoUtilisateur(gpwInfoGroupe), »Commerciaux ») ALORS
OPT_Sce_commercial..Etat = Actif
FIN
Déconnexion de l’utilisateur
Pour déconnecter un utilisateur, il suffit d’utiliser l’instruction gpwDéconnecteUtilisateur().
On retirera dans la foulée tous les droits accordés par le code à l’utilisateur qui vient de se déconnecter.
Bonjour ,
je tient a vous remercier pour cette superbe solution ; toute fois un petit problème m’a été générer lors de la création du Mot de passe superviseur : Mot de passe Incorrecte (Première exécution)
donc je vous sauré gré si possible de nous apporté aide
merci
Bonjour,
Super sans cet article aucune info sur le net….merci encore.