@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; }
/* * 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; }
/* * 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; }