1. #1
    Membre à l'essai
    Homme Profil pro
    Programmeur
    Inscrit en
    mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Finance

    Informations forums :
    Inscription : mai 2017
    Messages : 24
    Points : 13
    Points
    13

    Par défaut Gestion des sessions des Utilisateurs sans utiliser le GWutilisateur

    Bonsoir à tous, Depuis quelques jours je suis bloqué sur la gestion des sessions des utilisateurs. En fait je suis sur un projet de Gestion des Imobilisations et mon problème c'est le suivant:
    Je voudrais que lorsqu'un Utilisateur se connecte à mon application, il puisse avoir accès seulement aux informations concernant son Agence. Ces informations peuvent être la liste des Biens dont dispose l'Agence les différents Emplacements de l'Agence.
    Alors je voudrais savoir comment m'y prendre?

  2. #2
    Membre régulier
    Homme Profil pro
    Ex-Jedi dans le Consulting et le développement
    Inscrit en
    décembre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ex-Jedi dans le Consulting et le développement
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : décembre 2011
    Messages : 35
    Points : 73
    Points
    73

    Par défaut

    Bonjour,

    ce n'est pas un point que Windev sait faire en natif mais un soucis d'analyse et de conception de votre application.

    Le Groupware n'est aucunement concerné dans l'accès aux données mais il l'est dans l’accessibilité des formulaires.

    donc je vous conseil :
    1- aide et documentation de windev
    2- gestion des bases de données
    3- tutoriels


    Cordialement

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 073
    Points : 558
    Points
    558

    Par défaut

    Ajoutez un peu de réflexion aussi.

    Lorsqu'un utilisateur se connecte vous pouvez identifier l'agence à laquelle il appartient.
    Cette valeur est ensuite stockée dans une variable globale.

    Lors des différentes sélections cette valeur est ajoutée en filtre.
    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from UneTable where AG_ID = variableGlobale
    J'ai connu dans une grande Société que je préfère ne pas nommer une autre méthode qui consistait à créer autant de bases que d'agences.
    Dans ce cas on utilisait la variable globale pour savoir à quelle base se connecter.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Programmeur
    Inscrit en
    mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Finance

    Informations forums :
    Inscription : mai 2017
    Messages : 24
    Points : 13
    Points
    13

    Par défaut

    Bonsoir Expert voici un peu de ma procédure:
    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
    PROCEDURE RemplirAgence_Biens(id_agence)
     
    //On supprime tous les biens dans la table mémoire
    TableSupprimeTout(TABLE_BIEN)
     
    // On insère les biens dans la table en fonction de l'agence et surtout de l'utlisateur
    POUR TOUT BIEN AVEC Agence_id=id_agence
    	SI gsLongin="" ALORS
    		TableAjouteLigne(TABLE_BIEN,BIEN.Bien_photo,BIEN.Bien_AncienCode,BIEN.Bien_id,BIEN.Bien_CodeBarre,BIEN.Bien_IntituleComptable,BIEN.Bien_Reference,BIEN.Bien_IntituleTechnique,BIEN.Bien_Nom,BIEN.Bien_NumSerie,BIEN.Bien_etat,BIEN.Bien_DateAcquisition,BIEN.Bien_Valeur,BIEN.Bien_Amortissement,BIEN.Bien_VNC,BIEN.Bien_latitude,BIEN.Bien_Longitude,BIEN.Bien_Parent)
    	SINON
    		HExécuteRequête(REQ_ListeBien_Agence,hRequêteDéfaut)
    		HLitPremier(REQ_ListeBien_Agence)
    		TANTQUE PAS HEnDehors(REQ_ListeBien_Agence)
    			TableAjouteLigne(TABLE_BIEN,REQ_ListeBien_Agence.Bien_photo+TAB+REQ_ListeBien_Agence.Bien_AncienCode+TAB+REQ_ListeBien_Agence.Bien_id+TAB+REQ_ListeBien_Agence.Bien_CodeBarre+TAB+REQ_ListeBien_Agence.Bien_IntituleComptable+TAB+REQ_ListeBien_Agence.Bien_Reference+TAB+REQ_ListeBien_Agence.Bien_IntituleTechnique+TAB+REQ_ListeBien_Agence.Bien_Nom+TAB+REQ_ListeBien_Agence.Bien_NumSerie+TAB+REQ_ListeBien_Agence.Bien_etat+TAB+REQ_ListeBien_Agence.Bien_DateAcquisition+TAB+REQ_ListeBien_Agence.Bien_Valeur+TAB+REQ_ListeBien_Agence.Bien_Amortissement+TAB+REQ_ListeBien_Agence.Bien_VNC+TAB+REQ_ListeBien_Agence.Bien_latitude+TAB+REQ_ListeBien_Agence.Bien_Longitude+TAB+REQ_ListeBien_Agence.Bien_Parent)
    			HLitSuivant(REQ_ListeBien_Agence)
    		FIN
    	FIN
    FIN
    Alors je souhaite que lorsqu'un utilisateur se connecte, s'il appartient une Agence alors tous les biens liés à l'Agence se chargent dans la Tab_Biens. Dans le cas contraire, il est soit un administrateur ou de la Direction Générale et tous les biens Des Agences s'affichent!!!!

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 073
    Points : 558
    Points
    558

    Par défaut

    Entre Agence_id=id_agence quelle est la variable et quel est le nom de champ ?
    Il y a pas mal de sujets qui traitent de ce point et c'est quand même important.

    Si c'est id_agence qui est la variable publique quelle est sa valeur si c'est un administrateur ?
    Si c'est par exemple 0 il faut gérer des conditions au niveau du filtre. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    POUR TOUT BIEN AVEC (id_agence <> 0 et Agence_id=id_agence) ou 
                                       (id_agence = 0)
    Cela dit je pense qu'une approche SQL serait préférable et permettrait peut-être d'inclure ce que fait la requete imbriquée dans la boucle.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Programmeur
    Inscrit en
    mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Finance

    Informations forums :
    Inscription : mai 2017
    Messages : 24
    Points : 13
    Points
    13

    Par défaut

    Citation Envoyé par Delphi-ne Voir le message
    Entre Agence_id=id_agence quelle est la variable et quel est le nom de champ ?
    Il y a pas mal de sujets qui traitent de ce point et c'est quand même important.

    Si c'est id_agence qui est la variable publique quelle est sa valeur si c'est un administrateur ?
    Si c'est par exemple 0 il faut gérer des conditions au niveau du filtre. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    POUR TOUT BIEN AVEC (id_agence <> 0 et Agence_id=id_agence) ou 
                                       (id_agence = 0)
    Cela dit je pense qu'une approche SQL serait préférable et permettrait peut-être d'inclure ce que fait la requete imbriquée dans la boucle.
    Ici le nom du champ est Agence_id et ma variable Globale est id_agence.


    PROCEDURE RemplirAgence_Biens()

    //On supprime tous les biens dans la table mémoire
    TableSupprimeTout(TABLE_BIEN)

    // On insère les biens dans la table en fonction de l'agence et surtout de l'utlisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    POUR TOUT BIEN AVEC (id_agence <> 0 ET AGENCE.Agence_id = id_agence) OU 
    	(Id_agence = 0)
    	SI gsLongin="" ALORS
    		TableAjouteLigne(TABLE_BIEN,BIEN.Bien_photo,BIEN.Bien_AncienCode,BIEN.Bien_id,BIEN.Bien_CodeBarre,BIEN.Bien_IntituleComptable,BIEN.Bien_Reference,BIEN.Bien_IntituleTechnique,BIEN.Bien_Nom,BIEN.Bien_NumSerie,BIEN.Bien_etat,BIEN.Bien_DateAcquisition,BIEN.Bien_Valeur,BIEN.Bien_Amortissement,BIEN.Bien_VNC,BIEN.Bien_latitude,BIEN.Bien_Longitude,BIEN.Bien_Parent)
    	SINON
    		HExécuteRequête(REQ_ListeBien_Agence,hRequêteDéfaut)
    		HLitPremier(REQ_ListeBien_Agence)
    		TANTQUE PAS HEnDehors(REQ_ListeBien_Agence)
    			TableAjouteLigne(TABLE_BIEN,REQ_ListeBien_Agence.Bien_photo+TAB+REQ_ListeBien_Agence.Bien_AncienCode+TAB+REQ_ListeBien_Agence.Bien_id+TAB+REQ_ListeBien_Agence.Bien_CodeBarre+TAB+REQ_ListeBien_Agence.Bien_IntituleComptable+TAB+REQ_ListeBien_Agence.Bien_Reference+TAB+REQ_ListeBien_Agence.Bien_IntituleTechnique+TAB+REQ_ListeBien_Agence.Bien_Nom+TAB+REQ_ListeBien_Agence.Bien_NumSerie+TAB+REQ_ListeBien_Agence.Bien_etat+TAB+REQ_ListeBien_Agence.Bien_DateAcquisition+TAB+REQ_ListeBien_Agence.Bien_Valeur+TAB+REQ_ListeBien_Agence.Bien_Amortissement+TAB+REQ_ListeBien_Agence.Bien_VNC+TAB+REQ_ListeBien_Agence.Bien_latitude+TAB+REQ_ListeBien_Agence.Bien_Longitude+TAB+REQ_ListeBien_Agence.Bien_Parent)
    			HLitSuivant(REQ_ListeBien_Agence)
    		FIN
    	FIN
    FIN
    Pour la création des utilisateurs, j'utilise un Fichier Utilisateur qui est lié au fichier du Personnel car un Personnel peut ne pas avoir accès à l'application, Par contre travaille dans une Agence qui a plusieurs Biens
    Structure de la BD:
    Personne(Personne_idauto;Name,Contact;Photo;Ville;Matricule;Fonction;Utilisateur_id#;Agence_Id#)
    Utilisateur(Utilisateur_id,Login;MDP;Confirmation;Date;Groupe_id#)
    Agence(Agence_Idauto;Name;Description;Localisation;BP;E_mail;Entreprise_id#)
    Biens(Biens_idauto;Reference;Name;Photo;Code_Barre;Date_achat;amortissement;Agence_Id#;Personne_id#

    Pour le cas d'un administrateur, il a accès à toutes les informations mais pour un personnel dans une agence c'est uniquement les Biens de son Agence aux quels il a accès lors de sa connection.
    je n'arrive franchement pas à me retrouver!!!!

    Re bonjour, maintenant j'ai modifié ma BD et obtenu ceci:
    Personne(Personne_idauto;Name,Contact;Photo;Ville;Matricule;Fonction;Utilisateur_id#;Agence_Id#)
    Utilisateur(Utilisateur_id,Login;MDP;Confirmation;Date;Groupe_id#)
    Agence(Agence_Idauto;Name;Description;Localisation;BP;E_mail;Entreprise_id#)
    Biens(Biens_idauto;Reference;Name;Photo;Code_Barre;Date_achat;amortissement;Agence_Id#
    Bien_Personne (Personne_id;Biens_id;Type Usage;Date_debut; Date_fin)


    Et je souhaiterai avoir les biens d'une Agence à afficher à l'Utilisateur connecté.
    alors comment m'y prendre?

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 354
    Points : 2 878
    Points
    2 878

    Par défaut

    Comme tu dis, tu n'arrives pas à te retrouver. Ton problème est un problème de conception.
    En principe, il faut bien faire la conception, s'assurer que le modèle est correct, et ensuite, on peut commencer la programmation.

    Là, tu as déjà écrit des lignes de code, mais tu n'es pas sûr de l'organisation des fichiers.

    Le code que tu as écrit, je ne le regarde pas, tu es encore dans la phase de 'conception'.
    Dans les 4 fichiers que tu présentes, il y a plein de trucs pas clairs.

    - quelle est l'utilité d'avoir un fichier personne et un fichier utilisateur séparés ?
    - dans le fichiers Biens, tu as un lien vers Personne_Id et un lien vers Agence_ID. Je pense que c'est redondant.

    Si Bien_1 est associé à Personne_1, et si dans le fichier Personne, Personne_1 est associé à Agence_1, j'imagine que Bien_1 sera associé à Agence_1 ? Et dans ce cas, la colonne Agence_Id dans le fichier Bien est en trop. Le risque d'avoir une colonne en 3, c'est que tu peux avoir des données incohérentes. L'autre problème avec cette colonne en trop, c'est que tu vas avoir plein de traitements 'inutiles' à faire dans certains cas. Par exemple si une personne change d'agence.

    Ceci dit, j'aurais plutôt dit qu'un bien était associé à une agence, pas à une personne, mais je n'ai pas tous les éléments.

    Tout ce travail d'organisation des fichiers, quels liens entre fichiers, il faut le faire sur papier. Tu éteins ton ordinateur, et tu travailles sur papier. Qaund tu es sûr que ton modèle de données est correct, alors tu peux rallumer ton ordinateur.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Programmeur
    Inscrit en
    mai 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Finance

    Informations forums :
    Inscription : mai 2017
    Messages : 24
    Points : 13
    Points
    13

    Par défaut

    Excuzez moi vraiment du dérangement mais pour ce qui est du lien entre les Fichiers Personnel et Biens, j'ai dans ma dernière analyse crée un fichier association ce dernier me permet de connaître pour chaque bien la personne l'ayant utiliser et le temps d'utilisation.
    J'obtiens un fichier sous la forme
    Bien_Personne(Bien_id#;Personne_id#;Bien_Personne_id clé composée;Date_Debut;Date_Fin)
    En créant le fichier Utilisateur et Personne j'ai voulu scinder ceux sencer travailler avec mon application et ceux ne l'utilisant pas!

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    mars 2002
    Messages
    1 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2002
    Messages : 1 073
    Points : 558
    Points
    558

    Par défaut

    En créant le fichier Utilisateur et Personne j'ai voulu scinder ceux sencer travailler avec mon application et ceux ne l'utilisant pas
    Ce n'est pas une super idée parce que cela démultiplie les informations.
    En fait vous avez 2 fois la même chose dans 2 tables différentes. Cela complique aussi les choses quand on veut ajouter quelqu'un à la table des utilisateurs ou le retirer.
    Il est plus simple (si c'est encore possible pour vous) d'ajouter un champ dans la table Personne pour identifier les lignes de cette table qui peuvent utiliser l'application.

    Soit vous définissez ce champ à OUI/NON ou vous mettez la date à laquelle il a été autorisé.

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 354
    Points : 2 878
    Points
    2 878

    Par défaut

    A priori, dans le fichier Personne, ce sont les clients, et dans le fichier Utilisateur, ce sont les employés des agences. Donc ok pour avoir 2 fichiers séparés.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. [Article] Créer des boutons avec icônes sans utiliser d'images
    Par FirePrawn dans le forum Publications (X)HTML et CSS
    Réponses: 9
    Dernier message: 07/09/2012, 16h37
  2. [CSS 3] Créer des boutons avec icônes sans utiliser d'images
    Par FirePrawn dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 07/09/2012, 16h37
  3. jboss seam gestion des sessions d'utilisateur
    Par soussou126 dans le forum JBoss
    Réponses: 0
    Dernier message: 31/12/2008, 11h04
  4. Réponses: 9
    Dernier message: 01/07/2006, 20h04
  5. Envoyer des valeurs à une page sans utiliser de formulaire
    Par tarzanjane dans le forum Formulaires
    Réponses: 18
    Dernier message: 03/03/2006, 18h19

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