@RequestMapping("/nouveauStatut")
  public ModelAndView changementStatut(
      @ModelAttribute("utilisateur") Utilisateur utilisateur,
      @RequestParam("roleSelected") Role roleSelected) {
    //		if(utilisateurService.isAdministrateur(utilisateurService.getUserInSession())) {
    Map<String, Object> modelListeUtilisateurs = new HashMap<String, Object>();
    if (!utilisateur.getMailLille1().trim().isEmpty()) {
      Utilisateur u = utilisateurService.getRowByMailLille1(utilisateur.getMailLille1());
      Role r = roleService.getRowByNom(roleSelected.getNom());
      if (r != null) {
        if (u != null) {
          switch (r.getNom()) {
            case "ADMINISTRATEUR":
              return getListeUtilisateurs(modelModifierStatutAdmin(u));
            case "MODERATEUR":
              return getListeUtilisateurs(modelModifierStatutMod(u));
            case "REPRESENTANT":
              return getListeUtilisateurs(modelModifierStatutRep(u));
            case "UTILISATEUR":
              return getListeUtilisateurs(modelSupprimerRolesUtilisateur(u));
            default:;
              break;
          }

        } else {
          u = new Utilisateur();
          u.setMailLille1(utilisateur.getMailLille1());
          Role rUtilisateur = roleService.getRowByNom("UTILISATEUR");
          u.addRole(r);
          u.addRole(rUtilisateur);
          utilisateurService.insertRow(u);
          modelListeUtilisateurs.put("changementStatut", "devient " + r.getNom());
        }
        modelListeUtilisateurs.put("utilisateurSelectionne", utilisateur.getMailLille1());
      }
    }
    return getListeUtilisateurs(modelListeUtilisateurs);
    //		}  else
    //			return new ModelAndView("redirect:/");
  }
 /*
  * Model fourni par cette methode pour pouvoir l'utiliser dans plusieurs methodes et diminuer le nombre de requetes
  */
 public Map<String, Object> modelModifierStatutMod(Utilisateur u) {
   Map<String, Object> modelListeUtilisateurs = new HashMap<String, Object>();
   if (utilisateurService.isModerateur(u)) {
     u.removeRole("MODERATEUR");
     modelListeUtilisateurs.put("changementStatut", "n'est plus MODERATEUR");
   } else {
     u.addRole(roleService.getRowByNom("MODERATEUR"));
     modelListeUtilisateurs.put("changementStatut", "devient MODERATEUR");
   }
   modelListeUtilisateurs.put("utilisateurSelectionne", u.getMailLille1());
   utilisateurService.updateRow(u);
   return modelListeUtilisateurs;
 }
 @RequestMapping("/list")
 public ModelAndView getListeUtilisateurs(Map<String, Object> modelListeUtilisateurs) {
   //		if(utilisateurService.isAdministrateur(utilisateurService.getUserInSession())) {
   if (modelListeUtilisateurs == null) modelListeUtilisateurs = new HashMap<String, Object>();
   List<Utilisateur> listeUtilisateur = new ArrayList<Utilisateur>();
   listeUtilisateur = utilisateurService.getList();
   modelListeUtilisateurs.put("listeUtilisateurs", listeUtilisateur);
   modelListeUtilisateurs.put("utilisateur", utilisateurService.getUserInSession());
   modelListeUtilisateurs.put("roleList", roleService.getList());
   modelListeUtilisateurs.put("catList", categorieService.getList());
   modelListeUtilisateurs.put("newUser", new Utilisateur());
   return new ModelAndView("admin_listeUtilisateurs", modelListeUtilisateurs);
   //		}  else
   //			return new ModelAndView("redirect:/");
 }
 /*
  * Model fourni par cette methode pour pouvoir l'utiliser dans plusieurs methodes et diminuer le nombre de requetes
  */
 public Map<String, Object> modelModifierStatutRep(Utilisateur u) {
   Map<String, Object> modelListeUtilisateurs = new HashMap<String, Object>();
   //		if(utilisateurService.isAdministrateur(utilisateurService.getUserInSession())) {
   if (utilisateurService.isRepresentant(u)) {
     u.removeRole("REPRESENTANT");
     modelListeUtilisateurs.put("changementStatut", "n'est plus REPRESENTANT");
   } else {
     u.addRole(roleService.getRowByNom("REPRESENTANT"));
     modelListeUtilisateurs.put("changementStatut", "devient REPRESENTANT");
   }
   modelListeUtilisateurs.put("utilisateurSelectionne", u.getMailLille1());
   utilisateurService.updateRow(u);
   //		}
   return modelListeUtilisateurs;
 }
 /*
  * Model fourni par cette methode pour pouvoir l'utiliser dans plusieurs methodes et diminuer le nombre de requetes
  */
 public Map<String, Object> modelModifierStatutAdmin(Utilisateur u) {
   Map<String, Object> modelListeUtilisateurs = new HashMap<String, Object>();
   // Il faut laisser au moins 1 administrateur
   if (utilisateurService.isAdministrateur(u)) {
     if (utilisateurService.getListByRole("ADMINISTRATEUR").size() <= 1) {
       modelListeUtilisateurs.put("nbAdminInsuffisant", true);
       return modelListeUtilisateurs;
     }
     u.removeRole("ADMINISTRATEUR");
     modelListeUtilisateurs.put("changementStatut", "n'est plus ADMINISTRATEUR");
   } else {
     u.addRole(roleService.getRowByNom("ADMINISTRATEUR"));
     modelListeUtilisateurs.put("changementStatut", "devient ADMINISTRATEUR");
   }
   utilisateurService.updateRow(u);
   modelListeUtilisateurs.put("utilisateurSelectionne", u.getMailLille1());
   return modelListeUtilisateurs;
 }
 /*
  * Model fourni par cette methode pour pouvoir l'utiliser dans plusieurs methodes et diminuer le nombre de requetes
  */
 public Map<String, Object> modelSupprimerRolesUtilisateur(Utilisateur u) {
   Map<String, Object> modelListeUtilisateurs = new HashMap<String, Object>();
   if (u != null) {
     if (utilisateurService.isAdministrateur(u)
         && utilisateurService.getListByRole("ADMINISTRATEUR").size() <= 1) {
       modelListeUtilisateurs.put("nbAdminInsuffisant", true);
       return modelListeUtilisateurs;
     }
     if (annonceService.getListByUtilisateur(u).isEmpty()
         && forumService.getListByUtilisateur(u).isEmpty()
         && jobService.getListByUtilisateur(u).isEmpty()) {
       utilisateurService.deleteRow(u.getId());
       modelListeUtilisateurs.put("utilisateurSelectionne", u.getMailLille1());
       modelListeUtilisateurs.put("changementStatut", "est maintenant supprimé");
     } else {
       Role r = roleService.getRowByNom("UTILISATEUR");
       u.setRoles(r);
       utilisateurService.updateRow(u);
       modelListeUtilisateurs.put("utilisateurSelectionne", u.getMailLille1());
       modelListeUtilisateurs.put("changementStatut", "n'a plus de rôles spéciaux");
     }
   }
   return modelListeUtilisateurs;
 }