예제 #1
0
        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"));
        }
예제 #2
0
        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));
        }