public ActionResult MANAGERROLE(String id)
 {
     using (IDAL dal = new Dal())
     {
         if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "GERER_ROLE"))
         {
             RoleVM2          rvm2   = dal.ConvertirRoleRoleVM2(dal.ObtenirRoleParId(CRYPTAGE.StringHelpers.Encrypt(id)), true);
             List <PRIVILEGE> listeP = dal.ObtenirTousLesPrivileges();
             if (listeP != null)
             {
                 foreach (var p in listeP)
                 {
                     p.Peut    = CRYPTAGE.StringHelpers.Decrypt(p.Peut);
                     p.Libelle = CRYPTAGE.StringHelpers.Decrypt(p.Libelle);
                 }
             }
             ViewBag.ListePrivilege = listeP;
             if (rvm2 != null)
             {
                 return(View("FormulaireGestionRole", rvm2));
             }
             else
             {
                 return(View("Error"));
             }
         }
         else
         {
             ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
             return(View("Error"));
         }
     }
 }
        public ActionResult MANAGERROLE(RoleVM2 role)
        {
            using (IDAL dal = new Dal())
            {
                if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "GERER_ROLE"))
                {
                    if (ModelState.IsValid)
                    {
                        ROLE r1 = dal.ObtenirRoleParId(role.RoleID);
                        if (r1.Intitule != CRYPTAGE.StringHelpers.Encrypt(role.Intitule) || r1.IsDeleted != !role.Actif)
                        {
                            ROLE r = new ROLE
                            {
                                IsDeleted = !role.Actif,
                                Intitule  = role.Intitule,
                                RoleID    = role.RoleID,
                            };

                            dal.ModifierRole(r);
                            if (!role.Actif)
                            {
                                List <UTILISATEUR> listUtilisateurs = dal.ObtenirTousLesUtilisateurs(1, role.RoleID);
                                if (listUtilisateurs != null && listUtilisateurs.Count > 0)
                                {
                                    foreach (var u in listUtilisateurs)
                                    {
                                        dal.DesactiverUtilisateur(u);
                                    }
                                }
                            }
                        }

                        List <PRIVILEGE> listeAncienPrivilege = dal.ObtenirListePrivilegesParListeAcces(dal.ObtenirTousLesAccesParRole(dal.ObtenirRoleParId(role.RoleID)));

                        if (role.TableauPrivilegeId != null)
                        {
                            role.ListePrivileges = new List <PRIVILEGE>();
                        }
                        foreach (var p in role.TableauPrivilegeId)
                        {
                            if (p != 0)
                            {
                                role.ListePrivileges.Add(dal.ObtenirPrivilegeParId(p));
                            }
                        }


                        List <PRIVILEGE> listePrivilegeAretirer = dal.OperandeListePrivilege(listeAncienPrivilege, role.ListePrivileges);
                        if (listePrivilegeAretirer != null)
                        {
                            foreach (var p in listePrivilegeAretirer)
                            {
                                dal.RetirerAcces(dal.ObtenirAccesParRoleIdParPrivilegeId(role.RoleID, p.PrivilegeID));
                            }
                        }

                        List <PRIVILEGE> listePrivilegeAAjouter = dal.OperandeListePrivilege(role.ListePrivileges, listeAncienPrivilege);
                        if (listePrivilegeAAjouter != null)
                        {
                            foreach (var p in listePrivilegeAAjouter)
                            {
                                dal.CreerAcces(role.RoleID, p.PrivilegeID);
                            }
                        }

                        return(RedirectToAction("MANAGERLISTEROLE"));
                    }

                    return(View(role));
                }
                else
                {
                    ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization();
                    return(View("Error"));
                }
            }
        }