Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.teragate.gateenergy.web;
- import it.teragate.gateenergy.contants.Constants;
- import it.teragate.gateenergy.entity.Impianto;
- import it.teragate.gateenergy.entity.Utente;
- import it.teragate.gateenergy.entity.assembler.AnagraficaAssembler;
- import it.teragate.gateenergy.model.AnagraficaExt;
- import it.teragate.gateenergy.notification.entity.Contatto;
- import it.teragate.gateenergy.notification.entity.RubricaPersonale;
- import it.teragate.gateenergy.notification.entity.TemplateNotifica;
- import it.teragate.gateenergy.services.AnagraficaService;
- import it.teragate.gateenergy.services.ContattoService;
- import it.teragate.gateenergy.services.GroupService;
- import it.teragate.gateenergy.services.ImpiantoService;
- import it.teragate.gateenergy.services.RoleService;
- import it.teragate.gateenergy.services.RubricaPersonaleService;
- import it.teragate.gateenergy.services.TemplateNotificaService;
- import it.teragate.gateenergy.services.UserService;
- import it.teragate.gateenergy.services.UtenteService;
- import it.teragate.gateenergy.utils.GeMail;
- import it.teragate.gateenergy.web.validator.AnagraficaValidator;
- import it.teragate.registry.Anagrafica;
- import it.teragate.registry.Group;
- import it.teragate.registry.User;
- import it.teragate.registry.exceptions.AuthenticationException;
- import it.teragate.registry.util.UserHelper;
- import java.security.NoSuchAlgorithmException;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.core.context.SecurityContextHolder;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.validation.BindingResult;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- @Controller
- public class AnagraficaController {
- public static Long ROLE_USER = 2L;
- final static String subject = "Invio credenziali"; // TODO: properties
- private String text = "Grazie per essersi registrato, \n\n le sue credenziali d'accesso sono:\n ";
- private UtenteService utenteService;
- private AnagraficaService anagraficaService;
- private RoleService roleService;
- private UserService subjectService;
- private AnagraficaValidator anagraficaValidator;
- private GroupService groupService;
- private ImpiantoService impiantoService;
- private UserService userService;
- private RubricaPersonaleService rubricaPersonaleService;
- private ContattoService contattoService;
- private TemplateNotificaService templateNotificaService;
- @Autowired
- public void setTemplateNotificaService(TemplateNotificaService templateNotificaService) {
- this.templateNotificaService = templateNotificaService;
- }
- @RequestMapping(value = "/profilo/{id}/edit", method = RequestMethod.GET)
- public String editprofilo(@PathVariable("id") Long id, ModelMap modelMap) {
- if (id != null) {
- List<Anagrafica> anagraficaList = anagraficaService.findByProperty("user", id);
- Anagrafica anagrafica = null;
- AnagraficaAssembler anagraficaAssembler = new AnagraficaAssembler();
- AnagraficaExt model = new AnagraficaExt();
- if (!anagraficaList.isEmpty()) {
- anagrafica = anagraficaList.get(0);
- model = (AnagraficaExt) anagraficaAssembler.fromEntity(anagrafica, model);
- }
- modelMap.addAttribute("anagrafica", model);
- return "profiloUtente";
- } else {
- return "redirect:/login.htm";
- }
- }
- @RequestMapping(value = "/profilo/{id}/edit", method = RequestMethod.POST)
- public String onSubmitModificaProfilo(@PathVariable("id") Long id, @ModelAttribute("anagrafica") AnagraficaExt model, BindingResult result, ModelMap modelMap, HttpServletRequest request) {
- User user = null;
- Anagrafica anagrafica = new Anagrafica();
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- model.setUser(user);
- } catch (AuthenticationException e) {
- return "redirect:/login.htm";
- }
- if (model.getId() != null) {
- anagrafica = anagraficaService.findById(model.getId());
- }
- anagraficaValidator.validateProfilo(model, result);
- if (!result.hasErrors()) {
- AnagraficaAssembler anagraficaAssembler = new AnagraficaAssembler();
- anagrafica = (Anagrafica) anagraficaAssembler.fromModel(model, anagrafica);
- Utente utente = anagrafica.getUser().getUtente();
- utente.setNominativo(anagrafica.getNome() + " " +anagrafica.getCognome());
- try {
- anagrafica.getUser().setPassword(UserHelper.getInstance().encode(model.getNuovaPassword()));
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- utente.setUser(anagrafica.getUser());
- utenteService.saveOrUpdate(utente);
- anagraficaService.saveOrUpdate(anagrafica);
- TemplateNotifica templateNotifica = templateNotificaService.findById(-3L);
- if(!model.getVecchiaPassword().equals(model.getNuovaPassword())){
- String testo = "";
- testo += templateNotifica.getTesto();
- testo = testo +"username: " + anagrafica.getUser().getUsername() + ", password: " + model.getNuovaPassword();
- String oggetto = templateNotifica.getSubject();
- GeMail.getInstance().sendMail(anagrafica.getEmail(), oggetto, testo, null);
- }
- } else {
- // sono error in modifica
- popolaModelMap(modelMap, model);
- return "profiloUtente";
- }
- return "redirect:/impiantoHome.htm";
- }
- /**
- * metodo get per la creazione della form di ricerca
- *
- * @param modelMap
- * @return
- */
- @RequestMapping(value = "/anagraficaSearchForm", method = RequestMethod.GET)
- public String anagraficaSearch(ModelMap modelMap) {
- AnagraficaExt anagrafica = new AnagraficaExt();
- List anagraficaList = new ArrayList();
- Utente utente = null;
- User user = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- }
- if (user.isAdmin()) {
- anagraficaList = anagraficaService.findAnagraficaFromModelForAdmin(anagrafica);
- } else {
- utente = utenteService.findByUser(user.getId());
- anagrafica.setUtenteCorrente(utente);
- anagraficaList = anagraficaService.findAnagraficaFromModel(anagrafica);
- }
- modelMap.addAttribute("anagraficaList", anagraficaList);
- modelMap.addAttribute("anagrafica", anagrafica);
- return "anagraficaSearchForm";
- }
- /**
- * metodo post per la ricerca delle anagrafiche
- *
- * @param modelMap
- * @param model
- * @param result
- * @return
- */
- @RequestMapping(value = "/anagraficaSearchForm", method = RequestMethod.POST)
- public String anagraficaSearch(ModelMap modelMap, @ModelAttribute("anagrafica") AnagraficaExt model, BindingResult result) {
- List anagraficaList = new ArrayList();
- Utente utente = null;
- User user = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- }
- if (user.isAdmin()) {
- anagraficaList = anagraficaService.findAnagraficaFromModelForAdmin(model);
- } else {
- utente = utenteService.findByUser(user.getId());
- model.setUtenteCorrente(utente);
- anagraficaList = anagraficaService.findAnagraficaFromModel(model);
- }
- modelMap.addAttribute("anagrafica", model);
- modelMap.addAttribute("anagraficaList", anagraficaList);
- return "anagraficaSearchForm";
- }
- /**
- * metodo get per la modifica di una anagrafica
- *
- * @param id
- * @param modelMap
- * @return
- */
- @RequestMapping(value = "/anagraficaEditForm/{id}/edit", method = RequestMethod.GET)
- public String editForm(@PathVariable("id") Long id, ModelMap modelMap) {
- if (id != null) {
- List<Impianto> impiantoList = new ArrayList();
- List<Group> groupList = new ArrayList<Group>();
- AnagraficaAssembler anagraficaAssembler = new AnagraficaAssembler();
- Anagrafica anagrafica = anagraficaService.findById(id);
- AnagraficaExt model = new AnagraficaExt();
- model.setReadOnly(false);
- model = (AnagraficaExt) anagraficaAssembler.fromEntity(anagrafica, model);
- User user = null;
- Utente utente = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- }
- if (user.isAdmin()) {
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_ADMIN, null, null);
- } else {
- utente = utenteService.findByUser(user.getId());
- Object[] values = new Object[] { utente.getId() };
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_BY_ID_UTENTE, values, null);
- }
- groupList = groupService.findGroupById(user.getGroups().iterator().next().getId());
- modelMap.addAttribute("impiantoList", impiantoList);
- modelMap.addAttribute("anagrafica", model);
- modelMap.addAttribute("groupList", groupList);
- return "anagraficaEditForm";
- } else {
- return "redirect:/anagraficaSearchForm.htm";
- }
- }
- /**
- * metodo get per la delete di una anagrafica
- *
- * @param id
- * @param modelMap
- * @return
- */
- @RequestMapping(value = "/anagraficaEditForm/{id}/delete", method = RequestMethod.GET)
- public String Delete(@PathVariable("id") Long id, ModelMap modelMap) {
- if (id != null) {
- Anagrafica anagrafica = anagraficaService.findById(id);
- anagrafica.setStatus(Anagrafica.Status.DISABLED);
- anagrafica.getUser().setStatus(User.Status.DISABLED);
- anagrafica.getUser().setEnabled(false);
- anagrafica.getUser().setPassword("");
- anagrafica.getUser().setUsername("_"+anagrafica.getUser().getUsername());
- // subjectService.update(anagrafica.getUser());
- anagraficaService.update(anagrafica);
- subjectService.update(anagrafica.getUser());
- }
- return "redirect:/anagraficaSearchForm.htm";
- }
- /**
- * metodo get per la visualizzazione dettagliata di una anagrafica
- *
- * @param id
- * @param modelMap
- * @return
- */
- @RequestMapping(value = "/anagraficaEditForm/{id}/view", method = RequestMethod.GET)
- public String view(@PathVariable("id") Long id, ModelMap modelMap) {
- if (id != null) {
- List<Group> groupList = new ArrayList<Group>();
- List<Impianto> impiantoList = new ArrayList();
- AnagraficaAssembler anagraficaAssembler = new AnagraficaAssembler();
- Anagrafica anagrafica = anagraficaService.findById(id);
- AnagraficaExt model = new AnagraficaExt();
- model.setReadOnly(true);
- model = (AnagraficaExt) anagraficaAssembler.fromEntity(anagrafica, model);
- modelMap.addAttribute("anagrafica", model);
- User user = null;
- Utente utente = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- }
- if (user.isAdmin()) {
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_ADMIN, null, null);
- } else {
- utente = utenteService.findByUser(user.getId());
- Object[] values = new Object[] { utente.getId() };
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_BY_ID_UTENTE, values, null);
- }
- groupList = groupService.findGroupById(user.getGroups().iterator().next().getId());
- modelMap.addAttribute("impiantoList", impiantoList);
- modelMap.addAttribute("groupList", groupList);
- return "anagraficaEditForm";
- } else {
- return "redirect:/anagraficaSearchForm.htm";
- }
- }
- /**
- * Metodo get per la creazione della form
- *
- * @param modelMap
- * @param request
- * @return
- */
- @RequestMapping(value = "anagraficaEditForm", method = RequestMethod.GET)
- public String createForm(ModelMap modelMap, HttpServletRequest request) {
- AnagraficaExt anagrafica = new AnagraficaExt();
- popolaModelMap(modelMap, anagrafica);
- return "anagraficaEditForm";
- }
- /**
- * metodo post per l'inserimento e modifica di un anagrafica
- *
- * @param model
- * @param result
- * @param modelMap
- * @param request
- * @return
- */
- @RequestMapping(method = RequestMethod.POST)
- public String onSubmit(@ModelAttribute("anagrafica") AnagraficaExt model, BindingResult result, ModelMap modelMap, HttpServletRequest request) {
- User user = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- return "redirect:/anagraficaSearchForm.htm";
- }
- Anagrafica anagrafica = new Anagrafica();
- boolean update = false;
- if (model.getId() != null) {
- anagrafica = anagraficaService.findById(model.getId());
- update = true;
- }
- anagraficaValidator.validate(model, result);
- if (!result.hasErrors()) {
- AnagraficaAssembler anagraficaAssembler = new AnagraficaAssembler();
- Group group = null;
- if (model.getId() == null) {
- anagrafica = (Anagrafica) anagraficaAssembler.fromModel(model, anagrafica);
- Utente subOf = utenteService.findById(user.getId());
- anagrafica.getUser().setUsername(utenteService.creaUsername(anagrafica));
- group = groupService.findById(model.getIdGroup());
- anagrafica.getUser().getGroups().add(group);
- Utente utente = new Utente(anagrafica.getNome() + " " + anagrafica.getCognome(), subOf);
- utente.setUser(anagrafica.getUser());
- if (model.getImpianti() != null) {
- if (model.getImpianti().length > 0) {
- for (Long s : model.getImpianti()) {
- Impianto i = impiantoService.findById(s);
- utente.getImpiantos().add(i);
- }
- }
- }
- utenteService.saveOrUpdate(utente);
- if (!user.isAdmin()) {
- List<RubricaPersonale> rubricaPersonaleList= new ArrayList<RubricaPersonale>();
- rubricaPersonaleList = rubricaPersonaleService.findByProperty("utente", user.getUtente());
- Contatto contatto =new Contatto();
- contatto.setNominativo(utente.getNominativo());
- contatto.setRiferimento(anagrafica.getEmail());
- contatto.setTpContatto(1L);
- contattoService.saveOrUpdate(contatto);
- if(rubricaPersonaleList.isEmpty()){
- RubricaPersonale rubrica= new RubricaPersonale(user.getUtente(),"Rubrica Contatti");
- rubrica.getContatti().add(contatto);
- rubrica.getUtenti().add(utente);
- rubricaPersonaleService.saveOrUpdate(rubrica);
- }else{
- for (RubricaPersonale rubricaPersonale : rubricaPersonaleList) {
- rubricaPersonale.getContatti().add(contatto);
- rubricaPersonale.getUtenti().add(utente);
- rubricaPersonaleService.saveOrUpdate(rubricaPersonale);
- }
- }
- }
- // creo la rubrica per l'utente che stò creando
- List<RubricaPersonale> rubricaUtenteCreatoList= new ArrayList<RubricaPersonale>();
- rubricaUtenteCreatoList = rubricaPersonaleService.findByProperty("utente",utente);
- if(rubricaUtenteCreatoList.isEmpty()){
- RubricaPersonale rubricaUteneCreato= new RubricaPersonale(utente,"Rubrica Contatti");
- rubricaPersonaleService.saveOrUpdate(rubricaUteneCreato);
- }
- } else {
- anagrafica = anagraficaService.findById(model.getId());
- anagrafica = (Anagrafica) anagraficaAssembler.fromModel(model, anagrafica);
- Utente utente = anagrafica.getUser().getUtente();
- Iterator it = anagrafica.getUser().getGroups().iterator();
- it.next();
- it.remove();
- group = groupService.findById(model.getIdGroup());
- anagrafica.getUser().getGroups().add(group);
- if (!anagrafica.getUser().getUtente().getImpiantos().isEmpty()) {
- Iterator itImp = utente.getImpiantos().iterator();
- while (itImp.hasNext()) {
- itImp.next();
- itImp.remove();
- }
- }
- if (model.getImpianti() != null) {
- if (model.getImpianti().length > 0) {
- for (Long s : model.getImpianti()) {
- Impianto i = impiantoService.findById(s);
- utente.getImpiantos().add(i);
- }
- }
- }
- utenteService.saveOrUpdate(utente);
- }
- TemplateNotifica templateNotifica = templateNotificaService.findById(-3L);
- String saveOrUpdate = anagraficaService.saveOrUpdate(anagrafica);
- if ((!update || !"update".equals(saveOrUpdate))) {
- String testo = "";
- testo += templateNotifica.getTesto();//text;
- testo = testo +" username: " + anagrafica.getUser().getUsername() + ", password: " + anagrafica.getCognome().replaceAll(" ", ".").trim().toLowerCase(); //anagrafica.getUser().getPassword();
- String body = testo;
- GeMail.getInstance().sendMail(anagrafica.getEmail(), templateNotifica.getSubject(), body, null);
- }
- } else {
- // sono error in modifica
- popolaModelMap(modelMap, model);
- return "anagraficaEditForm";
- }
- return "redirect:/anagraficaSearchForm.htm";
- }
- /**
- * metodo di utlità per il precaricamento del model map
- *
- * @param modelMap
- * @param model
- * @return
- */
- private ModelMap popolaModelMap(ModelMap modelMap, AnagraficaExt anagrafica) {
- List<Group> groupList = new ArrayList<Group>();
- List<Impianto> impiantoList = new ArrayList();
- User user = null;
- Utente utente = null;
- try {
- user = utenteService.getUser(SecurityContextHolder.getContext().getAuthentication().getName());
- } catch (AuthenticationException e) {
- }
- if (user.isAdmin()) {
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_ADMIN, null, null);
- } else {
- utente = user.getUtente();
- Object[] values = new Object[] { utente.getId() };
- impiantoList = impiantoService.find(Constants.Q_SELECT_IMPIANTOS_BY_ID_UTENTE, values, null);
- }
- groupList = groupService.findGroupById(user.getGroups().iterator().next().getId());
- modelMap.addAttribute("impiantoList", impiantoList);
- modelMap.addAttribute("groupList", groupList);
- modelMap.addAttribute("anagrafica", anagrafica);
- modelMap.addAttribute("date_format", "dd/MM/yyyy");
- return modelMap;
- }
- public RubricaPersonaleService getRubricaPersonaleService() {
- return rubricaPersonaleService;
- }
- @Autowired
- public void setRubricaPersonaleService(RubricaPersonaleService rubricaPersonaleService) {
- this.rubricaPersonaleService = rubricaPersonaleService;
- }
- @Autowired
- public void setUtenteService(UtenteService utenteService) {
- this.utenteService = utenteService;
- }
- public UtenteService getUtenteService() {
- return utenteService;
- }
- @Autowired
- public void setPersonService(AnagraficaService anagraficaService) {
- this.anagraficaService = anagraficaService;
- }
- public AnagraficaService getAnagraficaService() {
- return anagraficaService;
- }
- @Autowired
- public void setRoleService(RoleService roleService) {
- this.roleService = roleService;
- }
- public RoleService getRoleService() {
- return roleService;
- }
- @Autowired
- public void setSubjectService(UserService subjectService) {
- this.subjectService = subjectService;
- }
- public UserService getSubjectService() {
- return subjectService;
- }
- public AnagraficaValidator getAnagraficaValidator() {
- return anagraficaValidator;
- }
- @Autowired
- public void setPersonValidator(AnagraficaValidator anagraficaValidator) {
- this.anagraficaValidator = anagraficaValidator;
- }
- @Autowired
- public void setGroupService(GroupService groupService) {
- this.groupService = groupService;
- }
- public GroupService getGroupService() {
- return groupService;
- }
- @Autowired
- public void setImpiantoService(ImpiantoService impiantoService) {
- this.impiantoService = impiantoService;
- }
- public ImpiantoService getImpiantoService() {
- return impiantoService;
- }
- @Autowired
- public void setUserService(UserService userService) {
- this.userService = userService;
- }
- public UserService getUserService() {
- return userService;
- }
- public ContattoService getContattoService() {
- return contattoService;
- }
- @Autowired
- public void setContattoService(ContattoService contattoService) {
- this.contattoService = contattoService;
- }
- }
Add Comment
Please, Sign In to add comment