Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hashage nom, prénom, etc #19

Open
maximus49000 opened this issue Jan 6, 2019 · 24 comments
Open

Hashage nom, prénom, etc #19

maximus49000 opened this issue Jan 6, 2019 · 24 comments

Comments

@maximus49000
Copy link

Bonjour Ivan et la communauté GIT.

J'ai commencé à travailler sur une nouvelle fonctionnalité (la possibilité pour un parent de s'inscrire directement depuis la plateforme). J'ai réussi à faire l'interface sans aucun problème, et la je suis au niveau du traitement de l'information. J'aimerai pouvoir dans la base de donnée tester le nom et prénom entré histoire de voir si la personne n'existe pas déjà. J'ai donc essayé avec :

existing_user = models.Individu.query.filter_by(nom=nomS, prenom=prenomS).first()

Après vérification j'ai l'impression que les noms et prénoms sont Hashé et donc ma méthode de comparaison ne retourne qu'un Individu avec la valeur None...

Pourrais-tu m'en dire un petit peu plus sur ce que utilise?

Bonne soirée.

Maxime

@Noethys
Copy link
Owner

Noethys commented Jan 6, 2019

Bonjour,

Les données personnelles sont chiffrées. Il faut par exemple utiliser ceci :

valeur = utils.CallFonction("DecrypteChaine", valeur)
valeur = utils.CallFonction("CrypteChaine", valeur)

Ivan

@maximus49000
Copy link
Author

maximus49000 commented Jan 6, 2019

En effet, j'ai donc essayé cela :

nomS = utils.CallFonction("CrypteChaine",form.nom.data)
prenomS = utils.CallFonction("CrypteChaine",form.prenom.data)
existing_user = models.Individu.query.filter_by(nom=nomS, prenom=prenomS).first()

Mais cela donne le même résultat. Suis-je donc obligé d'utiliser le query.all(), et parcourir toute les données manuellement? (deux hashage pas au même moment ne donne pas le même résultat, et donc comparer les hash, ça ne semble pas marcher, et on ne peu pas dire directement dans la fonction filter.by() :

utils.CallFonction("DecrypteChaine", nom) = nomS

Merci en tout cas pour ta réponse.

Maxime

@Noethys
Copy link
Owner

Noethys commented Jan 6, 2019

En effet, tu n'auras peut-être pas d'autre choix que de déchiffrer toute la liste.

Ivan

@maximus49000
Copy link
Author

C'est bien ce que j'avais peur... Bon et bien c'est pas grave on va le faire (histoire d'éviter au maximum qu'un même individu s'inscrive deux fois sur le portail).
De plus je voudrait qu'il fonctionne toute les demandes de connecthys avec une validation par noethys. Il va peut être falloir que je crée une table dans la base de données du coup je pense... ^^"

@maximus49000
Copy link
Author

L'interface d'inscription est maintenant terminé et l'interface fonctionnel.

J'aimerai maintenant m'attaquer au lien avec Noethys. Pourrais-tu m'expliquer la procédure pour les fonctionnalités de type : changement de mot de passe, demande d'ajout à une activité, demande d'inscription, ... ? En gros, par ou passe-tu pour que dans Noethys, il y ai une demande d'ajouté?

Autre infos. Si je commit, tu peu voir mes modifications, ou alors il faut un process spécifique?

Merci d'avance !

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019 via email

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019

Tu peux faire un commit sur ton fork. Je regarderai les modifications.

Ivan

@maximus49000
Copy link
Author

EN gros j’essaye que la demande de création d'utilisateur soit comme une demande d’ajout de réservation, et j"en passe.
C'est à dire que le nouvel utilisateur fait une demande dans Connecthys, il renseigne toute ses informations, et dès qu'il valide, il doit attendre que l'administrateur valide sa demande, et ensuite il peut accéder à Connecthys.
L'administrateur aura sa demande qui sera affiché dans noethys affiché avec les autres demandes de modification de mot de passe, d'ajout de réervation, et j'en passe.Et enfin dès sa validation, un mail confirmant l'accès au pourtail famille sera envoyé à l'utilisateur !

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019

Ok j'ai compris. Il y a 2 étapes :

  1. Dans Connecthys c'est assez simple : Enregistrer la demande dans la table Actions. Voir par exemple ici : https://github.com/Noethys/Connecthys/blob/master/connecthys/application/views.py#L1338. Il suffit de stocker tous les paramètres dans le champ Paramètres.

  2. Dans Noethys , c'est plus compliqué : Traiter la demande dans la fenêtre DLG_Portail_saisie_demande.py. Il faut regarder comment les autres demandes sont y traitées.

Ivan

@maximus49000
Copy link
Author

Merci bien.

Le problème pour la première étape dans Connecthys est que je n'ai ni UserID et IDFamille pour le moment (c'est justement ce que je veux créer dans Noethys). C'est obligatoire de le spécifier? De plus, j'ai plusieurs paramètres (nom, prénom, adresse, et j'en passe). Dans une idée d'unification du code, comment traite tu cela quand tu as plusieurs paramètres à faire passer dans la fonction (si tu as déjà eu ce cas de plusieurs paramètres bien sur), histoire que je ne change pas la routine de développement.

Max"

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019

Je crois que tu pourras laisser IDfamille=None. Connecthys ne devrait pas trop t'embêter là-dessus.

Pour les paramètres, de mémoire je les stocke de cette façon dans le champ Paramètres : "nom=dupond##prenom=marcel##etc...". J'avais prévu cette technique pour permettre une bonne évolutivité.

Ivan

@maximus49000
Copy link
Author

Well play Ivan ! super j'essaye ça tout de suite.

Après le plus dur ce sera d'afficher la demande dans l'interface Noethys. je pense... Tu récupère bien tout les types de demande dans Noethys ou alors tu fais un filtre sur l’intitulé de la demande? Et si oui, ou est-il situé?

@maximus49000
Copy link
Author

Re.
Parmis toute ces informations, lesquels ont besoin d'être hash? et sont-elle hash aussi du côté de Noethys? En outre, j'envoi ces infos en direct ou alors je dois les Hash avant? :

password1 = PasswordField('password1', [validators.Required(), validators.Length(min=0, max=20)])
password2 = PasswordField('password2', [validators.Required(), validators.Length(min=0, max=20)])
accept = BooleanField("accept", default=False)
nom = HiddenField('nom')
prenom = HiddenField('prenom')
date_naiss = HiddenField('date_naiss')
rue_resid = HiddenField('rue_resid')
cp_resid = HiddenField('cp_resid')
ville_resid = HiddenField('ville_resid')
tel_domicile = HiddenField('tel_domicile')
tel_mobile = HiddenField('tel_mobile')
mail = HiddenField('mail')
identifiant = HiddenField('identifiant')

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019 via email

@maximus49000
Copy link
Author

Super merci.

J'ai commenté les lignes qui généraient cette erreur pour temporiser et avoir la possibilité de continuer à développer, mais je vais appliquer le correctif de ce pas !

Concernant les données cryptés, je vais donc tout crypter, si Noethys décrypte tout de toute façon !

J'ai donc réussi à créer la demande de connecthys, et je la reçois bien dans Noethys avec les bonnes variables. Maintenant je m'attaque au traitement avec la création de la famille, mais je suppose que tu as déjà une fonction qui crée une famille et un utilisateur ! je vais chercher dans toute ces lignes de codes ! ;)

Merci pour ton aide en tout cas ! je reviens vers toi dès que j'ai terminé !

@Noethys
Copy link
Owner

Noethys commented Jan 7, 2019

Regarde dans DLG_Famille.py

Ivan

@maximus49000
Copy link
Author

Bien je vais regarder ça !

@maximus49000
Copy link
Author

maximus49000 commented Jan 8, 2019

Bonjour.

Je reviens vers toi : dans Noethys, j'ai réussi à créer la demande, qui s'affiche bien, et je suis à l'étape du traitement. Je ne trouve pas dans ton code l'endroit ou tu ajoute l'adresse, le numéro de téléphone, sexe, et j'en passe (en gros les informations de la personne).
J'ai réussi à créer le nouvel individu qui a dons son nom et son prénom, mais je n'arrive pas dans ma requête à lui ajouter les infos perso. Voici ce que je fais pour le moment :

from Dlg import DLG_Individu
from Dlg import DLG_Famille
param = self.track.parametres.split('##')
dictInfosNouveau = {}
for item in param:
parametre=item.split('=')
dictInfosNouveau[parametre[0]]=parametre[1]
dictInfosNouveau['IDcategorie']=1
dictInfosNouveau['titulaire']=1
print dictInfosNouveau
DB = GestionDB.DB()
FamilleID = DLG_Famille.CreateIDfamille(DB,dictInfosNouveau)
dictInfosNouveau['IDfamille']=FamilleID
dlg = DLG_Individu.Dialog(None, IDindividu=None, dictInfosNouveau=dictInfosNouveau)
print(dlg)
return {"etat" : True}

mes infos sont stockés dans le param,, et je les bind dans le dictInfosNouveau

@Noethys
Copy link
Owner

Noethys commented Jan 8, 2019

Bonjour,

1ère chose : je vois que tu split self.track.parametres directement. Ce n'est pas nécessaire car Noethys le fait déjà. Regarde la fonction Traitement_inscriptions dans ligne 1293 de DLG_Saisie_portail_demande :

   def Traitement_inscriptions(self):
        # Récupération des paramètres
        IDactivite = int(self.dict_parametres["IDactivite"])
        IDgroupe = int(self.dict_parametres["IDgroupe"])

Tu n'as donc pas besoin de dictInfosNouveau.

Pour la saisie des individus, tu peux regarder les fichiers qui commencent par DLG_Individu_[...]

Ivan

@maximus49000
Copy link
Author

Bonjour Ivan.

Après moulte tentatives, j'arrive à importer une personne dans Noethys. J'ai juste un message d'erreur qui s'affiche lorsque je veux sauvegarder Individu_coord, avec la fonction Sauvegarde qui me dit que la liste de diffusion n'existe pas.
De plus, lorsque je sauvegarde mon individu, la famille est créée, l'individu aussi, mais lorsque je rentre dans sa fiche famille, et que j'essaye de modifier, consulter des infos, de prime abord, je les vois, mais lorsque j'appuis sur Valider, Noethys se ferme sans message d'erreur dans la console... J'essaye de détecter d'ou viens l'erreur, mais la je galère.

Je trouve la gestion des individus plutôt dur à comprendre, et j'avoue que rien que pour enregistrer un individu ainsi que ses coordonnées, ce n'était pas des plus faciles !

Si tu as 5 minutes pour consulter mon code, sinon pas grave je continue de chercher ! ;)

@Noethys
Copy link
Owner

Noethys commented Jan 9, 2019

Bonsoir,

Oui, ce code est complexe. C'est lié au système de rattachement des individus. C'est une des parties les plus complexes du logiciel, mais c'est aussi une des plus puissantes car elle permet beaucoup de choses dans l'utilisation. Bon, et puis peut-être parce que c'est codé avec les pieds car je ne suis pas informaticien. Forcément, ça aide pas :)

Si tu peux faire un commit sur ton code, je regarderai ton fork sur les jours à venir. Par contre, faut pas être regardant sur les délais car je suis archi-débordé depuis la rentrée de lundi.

@maximus49000
Copy link
Author

Merci bien de ta réponse !
En effet quand ce n'est pas toi qui l'as conçu j'avoue que j'ai beaux essayé de lire et relire ton code je ne comprend pas tout mais ne t'en fait pas, c'est le problème de chaque développeurs la dessus. On a tous notre façon de développé, et tout le temps, ce que tu pense être pourtant clair, ne l'es pas pour tout le monde ! Pour le moment, je n'ai pas trouvé la solution la dessus, mais bon je ne désespère pas !

Mais sinon ton code est tout a fait bien fait avec des commentaires et tout ! c'est juste que connecthys ça va c'est pas trop complexe à reprendre en main, Noethys, tu as je ne sais combien de dossiers et sous dossier avec des dépendances, des classes etc. Mais en tout cas beau travail quand même ! ;) .

J'ai commit normalement tu peu voir mon code (qui encore une fois n'est pas parfait non plus : normalement je suis plus php / html / css / javascript mais bon pour Noethys, je me met au Python ! Ahah). En même temps, ça me plait de pouvoir proposer de l'évolution non seulement dans l'intérêt de notre association qui recherche cette possibilité d'inscription en ligne, mais aussi dans une évolution de Noethys, si cela peut bien sur aider, et peut être être implémenté dans les prochaines versions de Noethys ! ;) . Et puis au cas ou, le temps que je m'adapte au code, si tu as besoin d'aide dans le développement, n'hésite pas à demander un petit temps d'adaptation, histoire de pouvoir assimiler toute les dépendances dans le code (bien nombreuses encore une fois dans Noethys), et je pense être capable de t'aider dans ta tache ! ;) .

Bref. Regarde ça quand tu aura le temps, je continue mes recherches et je te tiens au courant si j'arrive à dépatouiller le problème !

bonne soirée à toi !

Maxime

@maximus49000
Copy link
Author

Salut Ivan !

As-Tu eu le temps de regarder mon petit commit? ;-)
Merci d'avance en tout cas pour toute ces modifications que tu fais en ce moment !

Max

@maximus49000
Copy link
Author

Bonjour Ivan !

Je te relance pour cette fonctionnalité. As-tu eu le temps d'y jeter un petit coup d'oeil? ce serait super cool mais sinon c'est pas grave ne t'en fais pas !

Je recommence à développer de nouvelle fonctionnalités d'ici peu et donc ce serait pour s'assurer que j'ai pas tout cassé ! ;) .

Bonne journée à toi !

Max

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants