Пример #1
0
        // GET: /Membres/Details/5
        public ActionResult Details(int?id)
        {
            /*var empruntsList = (from l in db.Livres join e in db.Emprunts on l.Id_Livre equals e.Id_Livre select  new {  l, e} );
             * ViewBag.Emprunts = empruntsList.ToList();
             * ViewBag.Livres = new SelectList(db.Livres, "titre"); */
            /* ViewBag.Emprunts = db.Emprunts.Where(m => m.Id_membre.Equals(id)); */


            /*Retourne la liste des livres empruntés ainsi que la date d'emprunt: ComplexView se trouve dans le model BiblioModel.Context.cs  */
            var emprunts     = (from l in db.Livres join e in db.Emprunts on l.Id_Livre equals e.Id_Livre select new { e, l }).ToList();
            var empruntsList = emprunts.Select(u => new dbBiblioEntities.ComplexView {
                titre = u.l.titre, date_emprunt = u.e.date_emprunt, date_retour = Convert.ToDateTime(u.e.date_retour)
            });

            ViewBag.Emprunts = empruntsList;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Membres membres = db.Membres.Find(id);

            /*Emprunts emprunts = db.Emprunts.Include(m => m.Livres); */

            if (membres == null)
            {
                return(HttpNotFound());
            }
            return(View(membres));
        }
Пример #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            Membres membres = db.Membres.Find(id);

            db.Membres.Remove(membres);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #3
0
        public IActionResult InitializeNewPassWordPost(string password, string cPassword)
        {
            List <string> errors = new List <string>();

            ViewBag.NbrePagesVues   = GetPageVues();
            ViewBag.NbreVisitUnique = GetVisitIP();

            if (password == null)
            {
                errors.Add("Merci de saisir un mot de passe!");
            }
            if (password != cPassword)
            {
                errors.Add("Merci de saisir le même mot de passe!");
            }

            if (errors.Count() > 0)
            {
                ViewBag.errors = errors;
                return(View("InitializeNewPassWord"));
            }
            else
            {
                string pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\\W)";

                Regex r = new Regex(pattern);

                if (!r.IsMatch(password))
                {
                    errors.Add("Mot de passe invalide! Il doit être compris entre 8 et 15 caractères et contenir " +
                               "au minimum un chiffre, une majuscule et un caractère spécial");
                }

                if (errors.Count() > 0)
                {
                    ViewBag.errors = errors;
                    return(View("InitializeNewPassWord"));
                }
            }


            string NoUnique = Request.Cookies["User"];


            string HashPassword = Crypto.HashMdp(password);

            Membres m = new Membres {
                Password = HashPassword, NoUnique = NoUnique
            };

            m.UpdatePassword();

            m = m.GetMembreByNoUnique();

            ViewBag.ChangePassOk = "Changement de mot de passe réussi. Merci de vous identifier.";

            return(View("Login", m));
        }
Пример #4
0
 public ActionResult Edit([Bind(Include = "Id_Membres,Nom,Prenom,Email,Phone")] Membres membres)
 {
     if (ModelState.IsValid)
     {
         db.Entry(membres).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(membres));
 }
Пример #5
0
        public IActionResult Register()
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);

            Membres m = new Membres();

            return(View(m));
        }
Пример #6
0
        public IActionResult ChangePasswordPost(string mail)
        {
            ViewBag.NbrePagesVues   = GetPageVues();
            ViewBag.NbreVisitUnique = GetVisitIP();

            List <string> errors = new List <string>();

            if (mail == null)
            {
                errors.Add("Merci de saisir une adresse mail.");
                ViewBag.errors = errors;
                return(View("ForgotPassword"));
            }

            Membres m = new Membres {
                Mail = mail
            };

            if ((!m.VerifMailExist()))
            {
                errors.Add("Il n'y a pas d'utilisateur avec cette adresse mail.");
                ViewBag.errors = errors;
                ViewBag.Mail   = m.Mail;
                return(View("ForgotPassword"));
            }

            string NoUnique = m.GetNoUniqueMembre();

            SmtpClient client = new SmtpClient
            {
                Host        = PassConnection.SmtpConfig(),
                Port        = 587,
                EnableSsl   = true,
                Credentials = new NetworkCredential("*****@*****.**", PassConnection.MailPassWord())
            };

            MailMessage message = new MailMessage("*****@*****.**", m.Mail)
            {
                IsBodyHtml = true,
                Body       = "Merci de confirmer votre adresse mail en cliquant sur le lien suivant: <a href = \"http://www.greys-anatomy-fans.com/Membres/ReinitializeLostPassWord/" + NoUnique + "\">Lien</a>"
                ,


                Subject = "Réinitialisation du Mot de Passe"
            };



            client.Send(message);

            ViewBag.Message = $"Un mail vous permettant de réinitialiser votre mot de passe a été envoyé à {m.Mail}";

            return(View("ForgotPassword"));
        }
Пример #7
0
        public ActionResult Create([Bind(Include = "Id_Membres,Nom,Prenom,Email,Phone")] Membres membres)
        {
            if (ModelState.IsValid)
            {
                db.Membres.Add(membres);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(membres));
        }
Пример #8
0
 public ActionResult Edit([Bind(Include = "Id_membre,nom,prenom,date_naissance,sexe,tel,courriel,code,Id_adresse")] Membres membres, [Bind(Include = "Id_adresse,num_civique,rue,app,ville,code_postal,province")] Adresses adresses)
 {
     if (ModelState.IsValid)
     {
         db.Entry(membres).State  = EntityState.Modified;
         db.Entry(adresses).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Id_adresse = new SelectList(db.Adresses, "Id_adresse", "adresseComplete", membres.Id_adresse);
     return(View(membres));
 }
Пример #9
0
 /// <summary>
 /// Methode d'ajout d'un membre dans la liste de membre de l'association.
 /// </summary>
 /// <param name="membre"></param>
 public void AjouterUnMembre(Membre membre)
 {
     if (Membres.Contains(membre))
     {
         throw new Exception("Ce membre figure dejà dans la liste des Membres de l'association.");
     }
     //Si le membre passé en paramètre existe dans la liste de membres de l'association, une exception est levé.
     else
     {
         Membres.Add(membre); //Sinon il est ajouté à la liste des membres.
     }
 }
Пример #10
0
 /// <summary>
 /// Methode de suppression d'un membre dans la liste de membre de l'association.
 /// </summary>
 /// <param name="membre"></param>
 public void SupprimerMembre(Membre membre)
 {
     if (Membres.Contains(membre))
     {
         Membres.Remove(membre);
     }
     //Si le membre passé en paramètre existe dans la liste des membres il est alors supprimé.
     else
     {
         throw new Exception("Ce membre n'existe pas pour être supprimé.");
     }
 }
Пример #11
0
 private void SupprimerParticpant(object obj)
 {
     StageService.SupprimerParticipant(club, stage, participantSelectione);
     Membres.Add(participantSelectione);
     if (ParticipantsStage.Contains(participantSelectione))
     {
         ParticipantsStage.Remove(participantSelectione);
     }
     if (Participants.Contains(participantSelectione))
     {
         Participants.Remove(participantSelectione);
     }
 }
Пример #12
0
 public ActionResult Edit([Bind(Include = "idMembre,idAdresse,Nom,Prénom,Date_naissance,Courriel,Téléphone")] Membres membres, [Bind(Include = "idAdresse, Numéro_civique, Rue, Ville, Code_postal")] Adresses adresses)
 {
     if (ModelState.IsValid)
     {
         db.Entry(adresses).State = EntityState.Modified;
         db.Entry(membres).State  = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.idAdresse = new SelectList(db.Adresses, "idAdresse", "idAdresse", membres.idAdresse);
     //ViewBag.idAdresse = new SelectList(db.Adresses, "idAdresse", "Rue", membres.idAdresse);
     return(View(membres));
 }
Пример #13
0
        public IActionResult Confirm(string id)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();

            Membres m = new Membres {
                NoUnique = id
            };

            m = m.GetMembreByNoUnique();

            return(View("Confirm", m));
        }
Пример #14
0
        // GET: Membres/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Membres membres = db.Membres.Find(id);

            if (membres == null)
            {
                return(HttpNotFound());
            }
            return(View(membres));
        }
Пример #15
0
        public IActionResult Show(string pseudo)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            Membres m = new Membres();

            m = m.GetMembreByPseudo(pseudo);


            return(View("ShowMembre", m));
        }
Пример #16
0
        // GET: /Membres/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Membres membres = db.Membres.Find(id);

            if (membres == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Id_adresse = new SelectList(db.Adresses, "Id_adresse", "adresseComplete", membres.Id_adresse);
            return(View(membres));
        }
 private void CookieUserExist(dynamic v)
 {
     if (Request.Cookies["User"] != null)
     {
         string  valCookie = Request.Cookies["User"];
         Membres m         = new Membres {
             NoUnique = valCookie
         };
         m      = m.GetMembreByNoUnique();
         v.Mail = m.Mail;
     }
     else
     {
         Membres m = new Membres();
         v.Mail = "Votre Adresse Mail";
     }
 }
Пример #18
0
 private void MiseAJourDesListe()
 {
     foreach (MembreModel m in club.Membres)
     {
         if (!StageService.VeutParticiper(club, stage, m) && MembreService.EstDisponible(club, m, stage) && !StageService.ParticipeAuStage(m, stage))
         {
             Membres.Add(m);
         }
         if (StageService.VeutParticiper(club, stage, m))
         {
             Participants.Add(m);
         }
         if (StageService.ParticipeAuStage(m, stage))
         {
             ParticipantsStage.Add(m);
         }
     }
 }
Пример #19
0
        public IActionResult Membres()
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);
            UserConnect(ViewBag);

            if (!ViewBag.logged)
            {
                return(View("Login"));
            }

            Membres m = new Membres();

            List <Membres> ListMembres = m.GetAllMembres();

            return(View("AdminMembres", ListMembres));
        }
Пример #20
0
        public async Task <IActionResult> AddArticlePost(string titre, string text, int idCategory, IFormFile media)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);

            CategoryArticle c = new CategoryArticle {
                Id = idCategory
            };

            Membres m = new Membres {
                IdMembre = Convert.ToInt32(ViewBag.Id)
            };

            Article a = new Article {
                Titre = titre, Texte = text, Categorie = c, Auteur = m, Date = DateTime.Now
            };

            a = a.AddArticle();

            string NumeroUnique = Guid.NewGuid().ToString("N");


            var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/MediasArticles", a.Id.ToString() + "-" + NumeroUnique + media.FileName);
            var stream = new FileStream(path, FileMode.Create);
            await media.CopyToAsync(stream);

            MediaArticle mediaArticle = new MediaArticle
            {
                Url       = "images/MediasArticles/" + a.Id.ToString() + "-" + NumeroUnique + media.FileName,
                IdArticle = a.Id
            };

            mediaArticle.AddMediaArticle();


            ArticlesCategoriesViewModel viewModel = new ArticlesCategoriesViewModel {
                Categories = c.GetAllCategory(), Articles = a.GetAllArticles(null, null)
            };

            return(View("ListArticles", viewModel));
        }
Пример #21
0
        public IActionResult ReinitializeLostPassWord(string id)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();

            Membres m = new Membres {
                NoUnique = id
            };

            m = m.GetMembreByNoUnique();

            CookieOptions option = new CookieOptions
            {
                Expires  = DateTime.Now.AddDays(30),
                HttpOnly = true
            };

            Response.Cookies.Append("User", id, option);

            return(View("InitializeNewPassWord", m));
        }
Пример #22
0
        public IActionResult ViewArticle(int id)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            Article a = new Article {
                Id = id
            };

            a = a.GetArticle();

            a.Texte = a.Texte.Replace(Environment.NewLine, "<br/>");

            ViewBag.MetaDescription = a.Texte;

            Personnage        perso  = new Personnage();
            List <Personnage> Persos = perso.GetAllPersos();

            foreach (Personnage p in Persos)
            {
                a.Texte = a.Texte.Replace(p.Prenoms[0].Prenom, "<a href=\"/Personnages/ViewPersonnageID/" + p.Id + "\">" + p.Prenoms[0].Prenom + "</a>");
                a.Texte = a.Texte.Replace(p.Nom, "<a href=\"/Personnages/ViewPersonnageID/" + p.Id + "\">" + p.Nom + "</a>");
            }

            Acteur        act     = new Acteur();
            List <Acteur> Acteurs = act.GetAllActeurs();

            foreach (Acteur acteur in Acteurs)
            {
                a.Texte = a.Texte.Replace(acteur.NomActeur, "<a href=\"/Acteurs/ViewActeurID/" + acteur.IdActeur + "\">" + acteur.NomActeur + "</a>");

                try
                {
                    a.Texte = a.Texte.Replace(acteur.PrenomsActeur[0].Prenom, "<a href=\"/Acteurs/ViewActeurID/" + acteur.IdActeur + "\">" + acteur.PrenomsActeur[0].Prenom + "</a>");
                }
                catch
                {
                    a.Texte = a.Texte;
                }
            }

            a.Texte = a.Texte.Replace("Grey Sloan", "<a href=\"/Serie/Hospital/\">" + "Grey Sloan Memorial Hospital" + "</a>");
            a.Texte = a.Texte.Replace("Grey Sloan Memorial", "<a href=\"/Serie/Hospital/\">" + "Grey Sloan Memorial Hospital" + "</a>");
            a.Texte = a.Texte.Replace("Grey Sloan Memorial Hospital", "<a href=\"/Serie/Hospital/\">" + "Grey Sloan Memorial Hospital" + "</a>");
            a.Texte = a.Texte.Replace("Seattle Grace", "<a href=\"/Serie/Hospital/\">" + "Seattle Grace" + "</a>");


            Membres m = new Membres();

            Commentaire c = new Commentaire {
                TypePubli = "article", IdPubli = id
            };
            List <Commentaire> commentaires = c.GetComments();


            List <Article> LastTenArticles = a.GetAllArticles(null, null);

            MembreLoginViewModel viewModel = new MembreLoginViewModel {
                Article = a, Membre = m, Commentaires = commentaires, Articles = LastTenArticles
            };


            return(View("ViewArticle", viewModel));
        }
Пример #23
0
        public IActionResult Vote(int?vote, int idSurvey)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            List <string> errors = new List <string>();

            if (vote == null)
            {
                errors.Add("Vous devez cocher une case pour voter!");
                ViewBag.errors = errors;
                Survey survey = new Survey {
                    Id = idSurvey
                };
                survey = survey.GetSurvey();

                Membres membre = new Membres(); //Récupérer le membre auteur du sondage
                membre = membre.GetMembreById(survey.IdCreateur);
                SurveyViewModel viewModel = new SurveyViewModel {
                    Survey = survey, Membre = membre
                };

                return(View("ViewSurvey", viewModel));
            }

            if (ViewBag.Logged)
            {
                AnswerByMembre answer = new AnswerByMembre {
                    IdMembre = Convert.ToInt32(ViewBag.Id), IdSurvey = idSurvey, IdAnswer = (int)vote
                };
                answer.SaveVoteMembre();
            }
            else
            {
                Visiteur   v = new Visiteur();
                string     remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
                AnswerByIp answer          = new AnswerByIp {
                    IdIp = v.GetIdIp(remoteIpAddress), IdAnswer = (int)vote, IdSurvey = idSurvey
                };
                answer.SaveVoteIdIp();

                CookieOptions option = new CookieOptions
                {
                    Expires  = DateTime.Now.AddDays(365),
                    HttpOnly = true
                };

                Response.Cookies.Append("Survey" + idSurvey, Convert.ToString(vote), option);
            }

            Survey s = new Survey {
                Id = idSurvey
            };

            s = s.GetSurvey();

            Membres m = new Membres(); //Récupérer le membre auteur du sondage

            m = m.GetMembreById(s.IdCreateur);
            List <Survey>         surveys = s.GetAllSurveys(true);
            SurveyResultViewModel result  = new SurveyResultViewModel {
                Survey = s, Surveys = surveys, Membre = m
            };

            return(View("ResultSurvey", result));
        }
Пример #24
0
        public IActionResult DisplaySurvey(int id)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);
            ConsentCookie(ViewBag);


            Survey s = new Survey {
                Id = id
            };

            s = s.GetSurvey();

            Membres m = new Membres(); //Récupérer le membre auteur du sondage

            m = m.GetMembreById(s.IdCreateur);

            SurveyViewModel viewModel = new SurveyViewModel {
                Survey = s, Membre = m
            };


            bool DejaVote; // Vérifier si déjà voté

            if (ViewBag.Logged)
            {
                AnswerByMembre answer   = new AnswerByMembre();
                int            IdMembre = Convert.ToInt32(ViewBag.Id);
                DejaVote = answer.VerifVoteMembre(IdMembre, id);
            }
            else
            {
                Visiteur   v = new Visiteur();
                string     remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
                AnswerByIp answer          = new AnswerByIp();

                bool VerifByIp = answer.VerifVoteIp(v.GetIdIp(remoteIpAddress), id);
                bool VerifByCookie;

                if (Request.Cookies["Survey" + id] == null)
                {
                    VerifByCookie = false;
                }
                else
                {
                    VerifByCookie = true;
                }

                if (VerifByIp && VerifByCookie)
                {
                    DejaVote = true;
                }
                else
                {
                    DejaVote = false;
                }
            }

            if (DejaVote)
            {
                List <Survey>         surveys = s.GetAllSurveys(true);
                SurveyResultViewModel result  = new SurveyResultViewModel {
                    Survey = s, Surveys = surveys, Membre = m
                };
                return(View("ResultSurvey", result));
            }

            return(View("ViewSurvey", viewModel));
        }
Пример #25
0
        public async Task <IActionResult> ModifAvatarPost(IFormFile image)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            UserConnect(ViewBag);

            Membres m = new Membres
            {
                Pseudo   = HttpContext.Session.GetString("pseudo"),
                Statut   = HttpContext.Session.GetString("statut"),
                Mail     = HttpContext.Session.GetString("mail"),
                IdMembre = Convert.ToInt32(HttpContext.Session.GetString("idMembre")),
                Avatar   = HttpContext.Session.GetString("avatar")
            };



            if (image.FileName.Contains(".png") || image.FileName.Contains(".jpg"))
            {
                if (image.Length > 1000000)
                {
                    ViewBag.errors = "Le fichier doit avoir une taille maximale de 1Mo.";
                    return(View("ModifAvatar"));
                }
                string NumeroUnique = Guid.NewGuid().ToString("N");

                if (image.FileName.Contains(".png"))
                {
                    var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/Avatars", m.IdMembre.ToString() + "-" + NumeroUnique + ".png");
                    var stream = new FileStream(path, FileMode.Create);
                    await image.CopyToAsync(stream);

                    m = new Membres
                    {
                        Pseudo   = HttpContext.Session.GetString("pseudo"),
                        Statut   = HttpContext.Session.GetString("statut"),
                        Mail     = HttpContext.Session.GetString("mail"),
                        IdMembre = Convert.ToInt32(HttpContext.Session.GetString("idMembre")),
                        Avatar   = "images/Avatars/" + m.IdMembre.ToString() + "-" + NumeroUnique + ".png"
                    };
                    m.UpdateAvatar();
                    HttpContext.Session.SetString("avatar", m.Avatar);
                }
                if (image.FileName.Contains(".jpg"))
                {
                    var path   = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/Avatars", m.IdMembre.ToString() + "-" + NumeroUnique + ".jpg");
                    var stream = new FileStream(path, FileMode.Create);
                    await image.CopyToAsync(stream);

                    m = new Membres
                    {
                        Pseudo   = HttpContext.Session.GetString("pseudo"),
                        Statut   = HttpContext.Session.GetString("statut"),
                        Mail     = HttpContext.Session.GetString("mail"),
                        IdMembre = Convert.ToInt32(HttpContext.Session.GetString("idMembre")),
                        Avatar   = "images/Avatars/" + m.IdMembre.ToString() + "-" + NumeroUnique + ".jpg"
                    };
                    m.UpdateAvatar();
                    HttpContext.Session.SetString("avatar", m.Avatar);
                }
            }

            else
            {
                ViewBag.errors = "Seuls les fichiers .jpg ou .png sont accceptés";
                return(View("ModifAvatar"));
            }



            UserConnect(ViewBag);

            HttpContext.Session.SetString("avatar", m.Avatar);

            ViewBag.ChangeAvatarOk = "Changement de photo de profil réussi";

            return(View("ShowMembre"));
        }
Пример #26
0
 private void AjouterParticipant(object obj)
 {
     StageService.AjouterParticipant(club, stage, membreSelectione);
     Participants.Add(MembreSelectione);
     Membres.Remove(MembreSelectione);
 }
Пример #27
0
        public IActionResult LoginPost(string mail, string password, string typePubli, int?idPubli)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);

            List <string> errors = new List <string>();



            if (mail == null)
            {
                errors.Add("Merci de saisir une adresse mail.");
            }
            if (password == null)
            {
                errors.Add("Merci de saisir un mot de passe.");
            }

            if (errors.Count > 0)
            {
                ViewBag.errors = errors;
                ViewBag.Mail   = mail;

                if (typePubli == "article")
                {
                    return(RedirectToRoute(new { controller = "Home", action = "ViewArticle", id = idPubli }));
                }

                return(View("Login"));
            }
            else
            {
                Membres m = new Membres {
                    Mail = mail, Password = password
                };

                if ((!m.VerifMailExist()))
                {
                    errors.Add("Il n'y a pas d'utilisateur avec cette adresse mail / mot de passe.");
                    ViewBag.errors = errors;
                    ViewBag.Mail   = m.Mail;

                    if (typePubli == "article")
                    {
                        return(RedirectToRoute(new { controller = "Home", action = "ViewArticle", id = idPubli }));
                    }

                    return(View("Login"));
                }

                m = m.Login();

                if (m.Pseudo == null)
                {
                    errors.Add("Il n'y a pas d'utilisateur avec cette adresse mail / mot de passe.");
                    ViewBag.errors = errors;
                    ViewBag.Mail   = m.Mail;

                    if (typePubli == "article")
                    {
                        return(RedirectToRoute(new { controller = "Home", action = "ViewArticle", id = idPubli }));
                    }

                    return(View("Login"));
                }

                if (m.VerifStatut() == "Inactif")
                {
                    errors.Add("Vous devez confirmer votre adresse Mail pour vous connecter.");
                    ViewBag.errors = errors;
                    ViewBag.Mail   = m.Mail;

                    if (typePubli == "article")
                    {
                        return(RedirectToRoute(new { controller = "Home", action = "ViewArticle", id = idPubli }));
                    }

                    return(View("Login"));
                }

                else
                {
                    HttpContext.Session.SetString("logged", "true");
                    HttpContext.Session.SetString("pseudo", m.Pseudo);
                    HttpContext.Session.SetString("idMembre", m.IdMembre.ToString());
                    HttpContext.Session.SetString("statut", m.Statut);
                    HttpContext.Session.SetString("avatar", m.Avatar);
                    HttpContext.Session.SetString("mail", m.Mail);

                    CookieOptions option = new CookieOptions
                    {
                        Expires  = DateTime.Now.AddDays(30),
                        HttpOnly = true
                    };
                    Response.Cookies.Append("User", m.NoUnique, option);


                    if (typePubli == "article")
                    {
                        return(RedirectToRoute(new { controller = "Home", action = "ViewArticle", id = idPubli }));
                    }



                    return(RedirectToRoute(new { controller = "Home", action = "Index" }));
                }
            }
        }
Пример #28
0
        public IActionResult RegisterPost(string pseudo, string mail, string password, string cPassword)
        {
            ViewBag.NbreVisitUnique = GetVisitIP();
            ViewBag.NbrePagesVues   = GetPageVues();
            ConsentCookie(ViewBag);

            List <string> errors = new List <string>();

            string  remoteIpAddress = Convert.ToString(Request.HttpContext.Connection.RemoteIpAddress);
            Membres m = new Membres {
                Pseudo = pseudo, Mail = mail, Password = password, Ip = remoteIpAddress
            };

            if (pseudo == null)
            {
                errors.Add("Merci de saisir un pseudo!");
            }
            if (mail == null)
            {
                errors.Add("Merci de saisir une adresse mail!");
            }
            if (password == null)
            {
                errors.Add("Merci de saisir un mot de passe!");
            }
            if (password != cPassword)
            {
                errors.Add("Merci de saisir le même mot de passe!");
            }

            if (m.Pseudo != null)
            {
                if (m.VerifPseudoExist())
                {
                    errors.Add("Ce pseudo existe déja, veuillez en choisir un autre.");
                }
            }

            if (m.Mail != null)
            {
                if (m.VerifMailExist())
                {
                    errors.Add("Cette adresse mail est déjà enregistrée!");
                }
            }

            if (errors.Count() > 0)
            {
                ViewBag.errors = errors;
                return(View("Register", m));
            }
            else
            {
                string pattern = @"^[A-z0-9._-]+(@)[a-z-9_-]+\.[a-z]{2,5}$";
                Regex  r       = new Regex(pattern);

                if (!r.IsMatch(m.Mail))
                {
                    errors.Add("Cette adresse mail n'est pas valide!");
                }

                pattern = "[a-zA-Z0-9]{4,10}";
                r       = new Regex(pattern);
                if (!r.IsMatch(m.Pseudo))
                {
                    errors.Add("Le pseudo doit contenir minimum 4 caractères!");
                }

                pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\\W)";
                r       = new Regex(pattern);

                if (!r.IsMatch(m.Password))
                {
                    errors.Add("Mot de passe invalide! Il doit être compris entre 8 et 15 caractères et contenir " +
                               "au minimum un chiffre, une majuscule et un caractère spécial");
                }

                if (errors.Count() > 0)
                {
                    ViewBag.errors = errors;
                    return(View("Register", m));
                }
            }


            string NumeroUnique = Guid.NewGuid().ToString("N"); /*Creation d'un ID unique pour le cookie*/

            string HashPassword = Crypto.HashMdp(password);     /*Cryptage PassWord*/

            m = new Membres {
                Pseudo = pseudo, Mail = mail, Password = HashPassword, Ip = remoteIpAddress, NoUnique = NumeroUnique, DateInscription = DateTime.Now
            };

            SmtpClient client = new SmtpClient
            {
                Host        = PassConnection.SmtpConfig(),
                Port        = 587,
                EnableSsl   = true,
                Credentials = new NetworkCredential("*****@*****.**", PassConnection.MailPassWord())
            };

            MailMessage message = new MailMessage("*****@*****.**", m.Mail)
            {
                IsBodyHtml = true,
                Body       = "Merci de confirmer votre adresse mail en cliquant sur le lien suivant: <a href = \"http://www.greys-anatomy-fans.com/Membres/Confirm/" + m.NoUnique + "\">Lien</a>"
                ,


                Subject = "Confirmez votre adresse Mail"
            };



            client.Send(message);

            m.AddMembre();

            CookieOptions option = new CookieOptions
            {
                Expires  = DateTime.Now.AddDays(30),
                HttpOnly = true
            };

            Response.Cookies.Append("User", m.NoUnique, option);

            var request = Request;

            return(View("SendMailRegistration", m));
        }