/// <summary>
        /// Vérifie la validité des informations entrées dans les champs de saisie.
        /// </summary>
        /// <returns>true si les informations sont valides, false sinon.</returns>
        protected override bool ChampsValides()
        {
            string passHashed = Hashage.Encrypter(textBoxPassword.Text, null, HashType.Sha256);

            labelErreur.Visible = false;

            if (TextBoxRemarques.Text == "")
            {
                labelErreur.Text    = "Erreur - Le champ de remarques de peut être vide.";
                labelErreur.Visible = true;
                return(false);
            }

            if (LoggedUser.compte == null)
            {
                labelErreur.Text    = "Erreur - Vous devez être connecté pour effectuer cette action.";
                labelErreur.Visible = true;
                return(false);
            }

            if (LoggedUser.compte.Grade != Grade.Détective)
            {
                labelErreur.Text    = "Erreur - Seul un détective peut effectuer cette action.";
                labelErreur.Visible = true;
                return(false);
            }
            if (!Hashage.HashValide(textBoxPassword.Text, LoggedUser.compte.HashPass, HashType.Sha256))
            {
                labelErreur.Text    = "Erreur - Le mot de passe saisi ne correspond pas au matricule.";
                labelErreur.Visible = true;
                return(false);
            }
            m_rapportEnquete = new RapportEnquete(TextBoxRemarques.Text, LoggedUser.compte);


            if (m_typeSaisie == TypeDeSaisie.Suppression)
            {
                return(MB.ConfirmerOuiNon("Voulez-vous vraiment supprimer définitivement ce rapport d'enquête?"));
            }
            else if (m_typeSaisie == TypeDeSaisie.Modification)
            {
                return(MB.ConfirmerOuiNon("Voulez-vous vraiment rendre ces modifications permanentes?"));
            }
            else
            {
                return(true);
            }
        }
        private bool ValidationLogin()
        {
            string user       = StringNonVide(textBoxlogin, "Utilisateur");
            string passHashed = StringNonVide(textBoxPassword, "Mot de passe");
            Compte c          = RequetesSQL.SQLLogin(user, textBoxPassword.Text);

            if (c == null)
            {
                MB.Avertir("Authentification rejetée");
                return(false);
            }
            if (!Hashage.HashValide(textBoxPassword.Text, c.HashPass, HashType.Sha256))
            {
                MB.Avertir("Authentification rejetée");
                return(false);
            }
            return(LoggedUser.OuvrirSession(c.Matricule.ToString()));
        }
        protected override bool ChampsValides()
        {
            StringNonVide(textBoxPassword, "mot de passe actuel");

            if (!Hashage.HashValide(textBoxPassword.Text, LoggedUser.compte.HashPass, HashType.Sha256))
            {
                MB.Avertir("Mot de passe actuel est invalide");
                return(false);
            }

            if (!textBoxNewPassword.Text.Equals(textBoxNewPassword2.Text))
            {
                MB.Avertir("Les champs nouveau mot de passe ne correspondent pas");
                return(false);
            }
            string mdpHash = Hashage.Encrypter(textBoxNewPassword.Text);

            LoggedUser.compte.ModifierPasse(mdpHash);
            return(RequetesSQL.UpdateCompte(LoggedUser.compte));
        }
        /// <summary>
        /// Envoyer un message pour reset le mot de passe
        /// </summary>
        /// <param name="p_recipient">email de l'utilisateur</param>
        /// <param name="p_hashPasse">hash passe a conserver dans la base des données</param>
        /// <returns></returns>
        public static bool sendResetMessage(string p_recipient, out string p_hashPasse)
        {
            p_hashPasse = "";
            if (!IsValidEmail(p_recipient))
            {
                return(false);
            }
            // SMTP server (par google)
            MailMessage mail       = new MailMessage();
            SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");
            Random      rd         = new Random(Guid.NewGuid().GetHashCode());

            p_hashPasse     = Base64Encode(Guid.NewGuid().GetHashCode().ToString()); // passe provisoire généré automatiquement
            SmtpServer.Port = 587;
            string secret = Base64Decode("VWt4TmNteHRJeU14");                        // Mot de passe pour se connecter à google

            SmtpServer.Credentials = new System.Net.NetworkCredential("youniversion", Base64Decode(secret) + "00");
            SmtpServer.EnableSsl   = true;
            // Message
            mail.From = new MailAddress("*****@*****.**");
            mail.To.Add(p_recipient);
            mail.Subject = "reinitialiser le mot de passe";
            mail.Body    = "Utilisez ce mot de passe pour reinitialiser votre mot de passe : \n" +
                           p_hashPasse;
            try
            {
                // Set the method that is called back when the send operation ends.
                SmtpServer.SendCompleted += new
                                            SendCompletedEventHandler(SendCompletedCallback);
                string userState = "test message1";
                SmtpServer.SendAsync(mail, userState);
                p_hashPasse = Hashage.Encrypter(p_hashPasse);
            }
            catch (Exception ex)
            {
                SmtpServer.Dispose();
                return(false);
            }
            return(true);
        }
예제 #5
0
        protected override bool ChampsValides()
        {
            // Valider les champs
            string   nom       = StringNonVide(textBoxNom, "Nom");
            string   prenom    = StringNonVide(textBoxPrenom, "Prénom");
            DateTime naissance = dateTimePickerNaissance.Value;

            if (naissance.Year < DateTime.Today.Year - AGE_MAX_COMPTE ||
                naissance.Year > DateTime.Today.Year - AGE_MIN_COMPTE)
            {
                MB.Avertir("L\'age de l\'utilisateur est invalide.");
                ActiveControl = dateTimePickerNaissance;
                return(false);
            }
            // Adresse
            string  rue        = StringNonVide(textBoxAdresse, "Adresse");
            string  ville      = StringNonVide(textBoxVille, "Ville");
            string  etat       = StringNonVide(textBoxEtat, "Etat");
            string  codePostal = StringNonVide(textBoxCodePostal, "Zip");
            Adresse adresse    = new Adresse(rue, ville, etat, codePostal);
            // Contact
            string tel = StringNonVide(textBoxTelephone, "Telephone");

            if (!Utilitaires.IsValidePhone(textBoxTelephone.Text))
            {
                MB.Avertir("Telephone invalide.");
                return(false);
            }
            string email = StringNonVide(textBoxEmail, "Email");

            if (!Utilitaires.IsValidEmail(textBoxEmail.Text))
            {
                MB.Avertir("Email invalide.");
                return(false);
            }
            // Grade, matricule
            Grade grade;

            if (Enum.IsDefined(typeof(Grade), comboBoxGrade.SelectedIndex))
            {
                grade = (Grade)comboBoxGrade.SelectedIndex;
            }
            else
            {
                MB.Avertir("Le Grade assigné est invalide.");
                ActiveControl = comboBoxGrade;
                return(false);
            }
            int matricule = Int32AvecMinimum(textBoxMatricule, 1, "Matricule");
            // Password
            string mdpHash;

            if (checkBoxEnableEditPass.Checked || typeSaisie == TypeDeSaisie.Ajout)
            {
                StringNonVide(textBoxPassword, "mot de passe");
                if (!textBoxPassword.Text.Equals(textBoxPassword2.Text))
                {
                    MB.Avertir("Les champs mot de passe ne correspondent pas");
                    return(false);
                }
                mdpHash = Hashage.Encrypter(textBoxPassword.Text);
            }
            else
            {
                mdpHash = compte.HashPass; // ne pas changer le mot de passe, si le champs n'est pas modifé
            }
            // Finir la validation
            return(FinirValidation(prenom, nom, matricule, naissance,
                                   adresse, tel, email,
                                   grade, mdpHash));
        }