def CreateIDfamille(DB, parametres=None): """ Crée la fiche famille dans la base de données afin d'obtenir un IDfamille et un IDcompte_payeur """ from Utils import UTILS_Internet date_creation = str(datetime.date.today()) IDfamille = DB.ReqInsert("familles", [ ("date_creation", date_creation), ]) # Création du compte payeur IDcompte_payeur = DB.ReqInsert("comptes_payeurs", [ ("IDfamille", IDfamille), ]) # Création des codes internet try: internet_identifiant = parametres['identifiant'] except: internet_identifiant = UTILS_Internet.CreationIdentifiant( IDfamille=IDfamille) try: internet_mdp = parametres['password1'] except: taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=8) internet_mdp = UTILS_Internet.CreationMDP(nbreCaract=taille) # Sauvegarde des données listeDonnees = [ ("IDcompte_payeur", IDcompte_payeur), ("internet_actif", 1), ("internet_identifiant", internet_identifiant), ("internet_mdp", internet_mdp), ] print listeDonnees DB.ReqMAJ("familles", listeDonnees, "IDfamille", IDfamille) return IDfamille
def RegenererMdp(self, event): if "********" in self.ctrl_mdp.GetValue(): dlg = wx.MessageDialog( self, _(u"Attention, ce mot de passe a déjà été personnalisé par l'usager ! \n\nSouhaitez-vous vraiment modifier ce mot de passe ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False dlg = wx.MessageDialog( self, _(u"Vous êtes vraiment sûr de vouloir générer un nouveau mot de passe ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=8) internet_mdp = UTILS_Internet.CreationMDP(nbreCaract=taille, cryptage=False) self.ctrl_mdp.SetValue(internet_mdp)
def GetMdp(self): internet_mdp = self.dictDonnees["internet_mdp"] if internet_mdp.startswith("custom"): internet_mdp = "********" if internet_mdp.startswith("#@#"): internet_mdp = UTILS_Internet.DecrypteMDP(internet_mdp) return internet_mdp
def MAJ(self): if self.dictDonnees["internet_actif"] == 1: activation = _(u"Compte internet activé") image = "Ok4" else: activation = _(u"Compte internet désactivé") image = "Interdit2" identifiant = self.dictDonnees["internet_identifiant"] if identifiant == None: identifiant = "" mdp = self.dictDonnees["internet_mdp"] if mdp == None: mdp = "" if mdp.startswith("#@#"): mdp = UTILS_Internet.DecrypteMDP(mdp) if mdp.startswith("custom"): mdp = _( u"********<BR><FONT SIZE=1>(Mot de passe personnalisé)</FONT>" ) self.SetPage(u""" <FONT SIZE=2> <BR><BR> <CENTER><IMG SRC="%s"><BR>%s <BR><BR> <B>Identifiant</B> : %s <BR> <B>Mot de passe</B> : %s </CENTER> </FONT> """ % (Chemins.GetStaticPath( u"Images/16x16/%s.png" % image), activation, identifiant, mdp)) self.SetBackgroundColour(self.couleurFond)
def MAJ(self): if self.dictDonneesInitiales["internet_actif"] == 1: self.radio_activation_oui.SetValue(True) if self.dictDonneesInitiales["internet_identifiant"] != None: self.ctrl_identifiant.SetValue( self.dictDonneesInitiales["internet_identifiant"]) if self.dictDonneesInitiales["internet_mdp"] != None: internet_mdp = self.dictDonneesInitiales["internet_mdp"] if internet_mdp.startswith("custom"): internet_mdp = "********" if internet_mdp.startswith("#@#"): internet_mdp = UTILS_Internet.DecrypteMDP(internet_mdp) self.ctrl_mdp.SetValue(internet_mdp)
def RegenererIdentifiant(self, event): dlg = wx.MessageDialog( self, _(u"Vous êtes vraiment sûr de vouloir générer un nouvel identifiant ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False internet_identifiant = UTILS_Internet.CreationIdentifiant( IDfamille=self.IDfamille, IDutilisateur=self.IDutilisateur) self.ctrl_identifiant.SetValue(internet_identifiant)
def CreateIDfamille(DB): """ Crée la fiche famille dans la base de données afin d'obtenir un IDfamille et un IDcompte_payeur """ from Utils import UTILS_Internet date_creation = str(datetime.date.today()) IDfamille = DB.ReqInsert("familles", [ ("date_creation", date_creation), ]) # Création du compte payeur IDcompte_payeur = DB.ReqInsert("comptes_payeurs", [ ("IDfamille", IDfamille), ]) # Création des codes internet internet_identifiant = UTILS_Internet.CreationIdentifiant( IDfamille=IDfamille) internet_mdp = UTILS_Internet.CreationMDP() # Sauvegarde des données listeDonnees = [ ("IDcompte_payeur", IDcompte_payeur), ("internet_actif", 1), ("internet_identifiant", internet_identifiant), ("internet_mdp", internet_mdp), ] DB.ReqMAJ("familles", listeDonnees, "IDfamille", IDfamille) return IDfamille
def __init__(self, parent, donnees): self.IDfamille = donnees[0] self.internet_actif = donnees[1] self.internet_identifiant = donnees[2] self.internet_mdp = donnees[3] if self.internet_mdp.startswith("custom"): self.internet_mdp = "********" if self.internet_mdp.startswith("#@#"): self.internet_mdp = UTILS_Internet.DecrypteMDP( self.internet_mdp, IDfichier=parent.IDfichier) if self.IDfamille in parent.dict_titulaires: self.nomTitulaires = parent.dict_titulaires[ self.IDfamille]["titulairesSansCivilite"] else: self.nomTitulaires = _(u"Titulaires inconnus")
def ReinitPasswords(self, event=None): """ Régénération des mots de passe """ listeCoches = self.GetTracksCoches() if len(listeCoches) == 0 : dlg = wx.MessageDialog(self, _(u"Vous n'avez coché aucun compte internet à réinitialiser !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return # Demandes de confirmation dlg = wx.MessageDialog(self, _(u"Souhaitez-vous vraiment réinitialiser les mots de passe des %d comptes sélectionnés ?") % len(listeCoches), _(u"Modification"), wx.YES_NO|wx.NO_DEFAULT|wx.CANCEL|wx.ICON_QUESTION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES : return dlg = wx.MessageDialog(self, _(u"ATTENTION, TOUS LES MOTS DE PASSE SERONT REINITIALISES !\n\nSouhaitez-vous vraiment regénérer les mots de passe des %d comptes sélectionnés ?") % len(listeCoches), _(u"Avertissement"), wx.YES_NO|wx.NO_DEFAULT|wx.CANCEL|wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES : return # Récupère la taille des mots de passe taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=8) dlg = wx.MessageDialog(self, _(u"Les mots de passe comporteront %d caractères.\n\nSi cela vous convient, cliquez sur Oui, sinon annulez et allez dans Menu Paramétrage > Préférences pour modifier la taille des mots de passe des comptes internet.") % taille, _(u"Avertissement"), wx.YES_NO|wx.NO_DEFAULT|wx.CANCEL|wx.ICON_QUESTION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES : return dlg = wx.MessageDialog(self, _(u"DERNIER AVERTISSEMENT !\n\nConfirmez-vous la réinitialisation des mots de passe ? Vous ne pourrez pas revenir en arrière..."), _(u"Avertissement"), wx.YES_NO|wx.NO_DEFAULT|wx.CANCEL|wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES : return # Regénération des mots de passe listeModifications = [] for track in listeCoches : mdp = UTILS_Internet.CreationMDP(nbreCaract=taille) listeModifications.append((mdp, track.IDfamille)) DB = GestionDB.DB() DB.Executermany("UPDATE familles SET internet_mdp=? WHERE IDfamille=?", listeModifications, commit=False) DB.Commit() DB.Close() self.MAJ()
def OnBoutonMdpRenew(self, event): dlg = wx.MessageDialog( self, _(u"Souhaitez-vous vraiment générer un nouveau mot de passe pour ce compte internet ? \n\nAttention, l'ancien mot de passe sera remplacé." ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return from Utils import UTILS_Internet taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=7) self.ctrl_mdp.SetValue(UTILS_Internet.CreationMDP(nbreCaract=taille)) self.MAJaffichage()
def OnBoutonOk(self, event): dictDonnees = self.GetDonnees() # Validation if len(dictDonnees["internet_identifiant"] ) < 7 and dictDonnees["internet_identifiant"] != "demo": dlg = wx.MessageDialog( self, _(u"L'identifiant est vraiment court.\n\nSouhaitez-vous tout de même le valider ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False if len(dictDonnees["internet_mdp"] ) < 7 and dictDonnees["internet_mdp"] != "demo": dlg = wx.MessageDialog( self, _(u"Le mot de passe est vraiment court.\n\nSouhaitez-vous tout de même le valider ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False # Vérifie que l'identifiant n'a pas déjà été attribué à un autre utilisateur ou une autre famille DB = GestionDB.DB() if self.IDfamille != None: req = u"""SELECT IDfamille, internet_identifiant FROM familles WHERE internet_identifiant='%s' AND IDfamille<>%d;""" % ( dictDonnees["internet_identifiant"], self.IDfamille) DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: dlg = wx.MessageDialog( self, _(u"Cet identifiant a déjà été attribué à %d famille(s) !" ) % len(listeDonnees), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return False if self.IDutilisateur != None: req = u"""SELECT IDutilisateur, internet_identifiant FROM utilisateurs WHERE internet_identifiant='%s' AND IDutilisateur<>%d;""" % ( dictDonnees["internet_identifiant"], self.IDutilisateur) DB.ExecuterReq(req) listeDonnees = DB.ResultatReq() DB.Close() if len(listeDonnees) > 0: dlg = wx.MessageDialog( self, _(u"Cet identifiant a déjà été attribué à %d utilisateur(s) !" ) % len(listeDonnees), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return False # Cryptage du mot de passe internet_mdp = dictDonnees["internet_mdp"] if not internet_mdp.startswith( "custom") and not internet_mdp.startswith("#@#"): internet_mdp = UTILS_Internet.CrypteMDP(internet_mdp) # Sauvegarde if self.mode_virtuel == False: DB = GestionDB.DB() listeDonnees = [ ("internet_actif", dictDonnees["internet_actif"]), ("internet_identifiant", dictDonnees["internet_identifiant"]), ("internet_mdp", internet_mdp), ] if self.IDfamille != None: DB.ReqMAJ("familles", listeDonnees, "IDfamille", self.IDfamille) if self.IDutilisateur != None: DB.ReqMAJ("utilisateurs", listeDonnees, "IDutilisateur", self.IDutilisateur) DB.Close() # Fermeture self.EndModal(wx.ID_OK)
def __init__(self, parent, IDutilisateur=None): wx.Dialog.__init__(self, parent, -1, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX) self.parent = parent self.IDutilisateur = IDutilisateur self.mdp = None self.mdpcrypt = None if IDutilisateur == None : DB = GestionDB.DB() IDutilisateur = DB.GetProchainID("utilisateurs") DB.Close() # Identité self.staticbox_identite_staticbox = wx.StaticBox(self, -1, _(u"Identité")) self.label_sexe = wx.StaticText(self, -1, _(u"Sexe :")) self.ctrl_sexe = wx.Choice(self, -1, choices=[_(u"Homme"), _(u"Femme")]) self.label_nom = wx.StaticText(self, -1, _(u"Nom :")) self.ctrl_nom = wx.TextCtrl(self, -1, u"") self.label_prenom = wx.StaticText(self, -1, _(u"Prénom :")) self.ctrl_prenom = wx.TextCtrl(self, -1, u"") # Image self.staticbox_image_staticbox = wx.StaticBox(self, -1, _(u"Avatar")) self.ctrl_image = CTRL_Image(self) self.hyper_image = Hyperlien(self, label=_(u"Choisir un avatar"), infobulle=_(u"Cliquez ici pour modifier l'avatar de l'utilisateur"), URL="") # Accès self.staticbox_acces_staticbox = wx.StaticBox(self, -1, _(u"Accès")) self.ctrl_actif = wx.CheckBox(self, -1, u"Utilisateur actif") self.ctrl_actif.SetValue(True) self.bouton_modif_mdp = CTRL_Bouton_image.CTRL(self, texte="", cheminImage="Images/32x32/Cle.png") # Compte internet self.staticbox_internet_staticbox = wx.StaticBox(self, -1, _(u"Compte internet")) self.ctrl_compte_internet = CTRL_Compte_internet.CTRL(self, IDutilisateur=IDutilisateur, couleurFond=wx.WHITE) self.bouton_modifier = wx.BitmapButton(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Modifier.png"), wx.BITMAP_TYPE_ANY)) #self.bouton_envoi_mail = wx.BitmapButton(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Emails_exp.png"), wx.BITMAP_TYPE_ANY)) self.bouton_envoi_pressepapiers = wx.BitmapButton(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Clipboard.png"), wx.BITMAP_TYPE_ANY)) #self.bouton_historique = wx.BitmapButton(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Historique.png"), wx.BITMAP_TYPE_ANY)) # Droits self.staticbox_droits_staticbox = wx.StaticBox(self, -1, _(u"Droits")) self.radio_droits_admin = wx.RadioButton(self, -1, _(u"Administrateur"), style=wx.RB_GROUP) self.radio_droits_modele = wx.RadioButton(self, -1, _(u"Le modèle de droits suivant :")) self.ctrl_modele_droits = CTRL_Modeles_droits(self) self.radio_droits_perso = wx.RadioButton(self, -1, _(u"Les droits personnalisés suivants :")) self.ctrl_droits = CTRL_Droits.CTRL(self, IDutilisateur=self.IDutilisateur) self.ctrl_droits.MAJ() # Commandes self.bouton_aide = CTRL_Bouton_image.CTRL(self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_ok = CTRL_Bouton_image.CTRL(self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL(self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnBoutonModifMdp, self.bouton_modif_mdp) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) self.Bind(wx.EVT_RADIOBUTTON, self.OnRadioDroits, self.radio_droits_admin) self.Bind(wx.EVT_RADIOBUTTON, self.OnRadioDroits, self.radio_droits_modele) self.Bind(wx.EVT_RADIOBUTTON, self.OnRadioDroits, self.radio_droits_perso) self.Bind(wx.EVT_BUTTON, self.ctrl_compte_internet.Modifier, self.bouton_modifier) #self.Bind(wx.EVT_BUTTON, self.Envoyer_email, self.bouton_envoi_mail) self.Bind(wx.EVT_BUTTON, self.ctrl_compte_internet.Envoyer_pressepapiers, self.bouton_envoi_pressepapiers) #self.Bind(wx.EVT_BUTTON, self.Consulter_historique, self.bouton_historique) if self.IDutilisateur == None : self.SetTitle(_(u"Saisie d'un utilisateur")) # Création des codes internet internet_identifiant = UTILS_Internet.CreationIdentifiant(IDutilisateur=IDutilisateur) internet_mdp = UTILS_Internet.CreationMDP(nbreCaract=8) self.ctrl_compte_internet.SetDonnees({"internet_actif": 0, "internet_identifiant": internet_identifiant, "internet_mdp": internet_mdp}) else: self.SetTitle(_(u"Modification d'un utilisateur")) self.Importation() self.OnRadioDroits(None) self.MAJboutonMdp()