public ActionResult ModifUtilisateur(int?idUtil) { if (idUtil != null) { UTILISATEUR leU = db.UTILISATEUR.SingleOrDefault(u => u.ID == idUtil); List <ECOLE> lstEcoles = db.ECOLE.ToList(); List <webpages_Roles> lstRoles = db.webpages_Roles.ToList(); ModifUtilisateurModel model = new ModifUtilisateurModel(); model.nomUtil = leU.NOMUTIL; model.courriel = leU.COURRIEL; model.courrielConfirm = leU.COURRIEL; model.prenom = leU.PRENOM; model.nom = leU.NOM; model.adresse = leU.ADRESSE; model.ville = leU.VILLE; model.dateNaissance = leU.DATENAISSANCE; model.langue = leU.LANGUE; model.idEcole = leU.IDECOLE; model.active = leU.ACTIF; model.Ecoles = lstEcoles.Select(e => new SelectListItem { Text = e.NOM, Value = e.ID.ToString() }); model.Roles = lstRoles.Select(r => new SelectListItem { Text = r.RoleName, Value = r.RoleName }); model.roleName = leU.webpages_Roles.SingleOrDefault().RoleName; return(View(model)); } return(RedirectToAction("GestionUtilisateurs", "Admin")); }
public ActionResult ModifUtilisateur(ModifUtilisateurModel model) { if (ModelState.IsValid) { UTILISATEUR u = db.UTILISATEUR.SingleOrDefault(i => i.ID == model.idUtil); if (!u.NOMUTIL.Equals(model.nomUtil)) { u.NOMUTIL = model.nomUtil; } u.COURRIEL = model.courriel; u.PRENOM = model.prenom; u.NOM = model.nom; u.ADRESSE = model.adresse; u.VILLE = model.ville; u.DATENAISSANCE = model.dateNaissance; u.LANGUE = model.langue; u.IDECOLE = model.idEcole; u.ACTIF = model.active; db.SaveChanges(); string currentRole = u.webpages_Roles.FirstOrDefault().RoleName; if (!currentRole.Equals(model.roleName)) { Roles.RemoveUserFromRole(u.NOMUTIL, currentRole); Roles.AddUserToRole(u.NOMUTIL, model.roleName); } if (currentRole.Equals("admin") && !currentRole.Equals(model.roleName)) { var utilSect = from uti in db.UTILISATEURSECTEUR where uti.IDUTILISATEUR == u.ID select uti; foreach (var utSect in utilSect) { UTILISATEURSECTEUR usect = (UTILISATEURSECTEUR)utSect; db.UTILISATEURSECTEUR.Remove(usect); } } if (model.roleName.Equals("admin")) { List <SECTEUR> allSect = db.SECTEUR.ToList(); int idUtil = WebSecurity.GetUserId(model.nomUtil); foreach (var s in allSect) { bool lienExiste = db.UTILISATEURSECTEUR.Any(us => us.IDSECTEUR == s.ID && us.IDUTILISATEUR == idUtil); if (!lienExiste) { UTILISATEURSECTEUR lien = new UTILISATEURSECTEUR(); lien.IDSECTEUR = s.ID; lien.IDUTILISATEUR = idUtil; lien.DEBUTACCES = DateTime.Now; lien.FINACCES = DateTime.Now.AddYears(10); db.UTILISATEURSECTEUR.Add(lien); } } } db.SaveChanges(); TempData[Constantes.CLE_MSG_RETOUR] = new Message(Message.TYPE_MESSAGE.SUCCES, Resources.Messages.UserModifOk); return(RedirectToAction("GestionUtilisateurs", "Admin")); } return(View(model)); }