public ActionResult Create() { ViewBag.GradesId = new SelectList(Db.Grades.Where(x => x.Etat == EtatEnum.ACTIF && x.ArmesId == 1).ToList(), "Id", "Nom"); ViewBag.ArmesId = new SelectList(Db.Armes.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); ViewBag.PolesId = new SelectList(Db.Poles.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); return(View(new Utilisateurs { Etat = EtatEnum.ACTIF, Role = RoleEnum.UTILISATEUR, MotDePasse = CryptUtils.GeneratePassword(9, true, true, true) })); }
/// <summary> /// créer un mot de passe /// </summary> /// <returns>le mot de passe</returns> public void GenererPassword(int longueur, bool lettre, bool chiffres, bool spec) { Password = CryptUtils.GeneratePassword(longueur, lettre, chiffres, spec); }
public async Task <ActionResult> Create(Utilisateurs utilisateurs) { if (Db.Utilisateurs.Count(x => x.Email == utilisateurs.Email && x.Etat == EtatEnum.ACTIF) > 0) { ModelState.AddModelError("Email", "Cette adresse est déjà présente!"); } if (ModelState.IsValid) { Utilisateurs user; var isAjout = false; //si l'adresse existe en base c'est que c'est un utilisateur périmé, donc on le réactive if (Db.Utilisateurs.Count(x => x.Email == utilisateurs.Email) > 0) { user = Db.Utilisateurs.First(x => x.Email == utilisateurs.Email); } else { user = Db.Utilisateurs.Create(); isAjout = true; } var motDePasse = CryptUtils.GeneratePassword(9, true, true, true); user.MotDePasse = CryptUtils.GenerateHashPassword(motDePasse); user.Email = utilisateurs.Email.ToLower(); user.Nom = StringUtils.FirstLetterUpper(utilisateurs.Nom.ToLower()); user.Prenom = StringUtils.FirstLetterUpper(utilisateurs.Prenom.ToLower()); user.Nid = utilisateurs.Nid; user.Pnia = utilisateurs.Pnia; user.Role = utilisateurs.Role; user.GradesId = utilisateurs.GradesId; user.PolesId = utilisateurs.PolesId; user.Etat = EtatEnum.ACTIF; if (isAjout) { Db.Entry(user).State = EntityState.Added; Db.Utilisateurs.Add(user); } else { Db.Entry(user).State = EntityState.Modified; } Db.SaveChanges(); //envoi du mail var mail = Db.Mails.First(x => x.NomUnique == ContexteStatic.EnvoiCreationCompte); var corpsMessage = StringUtils.CopyString(mail.Corps); corpsMessage = corpsMessage.Replace("%NOMAPPLI%", ContexteApplication.Application.NomAppli); corpsMessage = corpsMessage.Replace("%LOGIN%", user.Email); corpsMessage = corpsMessage.Replace("%MOTDEPASSE%", motDePasse); await MailUtils.SendMail(user.Email, mail.Objet, corpsMessage); return(RedirectToAction("Index")); } ViewBag.GradesId = new SelectList(Db.Grades.Where(x => x.Etat == EtatEnum.ACTIF && x.ArmesId == utilisateurs.ArmesId).ToList(), "Id", "Nom"); ViewBag.ArmesId = new SelectList(Db.Armes.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); ViewBag.PolesId = new SelectList(Db.Poles.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); return(View(utilisateurs)); }