/* * Sherwin John Calleja-Tragura * Student Management Portal */ package org.packt.academic.student.portal.controller; import javax.servlet.http.HttpServletRequest; import org.packt.academic.student.portal.model.data.Login; import org.packt.academic.student.portal.model.form.LoginForm; import org.packt.academic.student.portal.service.LoginService; import org.packt.academic.student.portal.service.ReportService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.SessionAttributes; import org.springframework.web.servlet.view.RedirectView; @Controller @SessionAttributes(value={"studId"}) @RequestMapping("/smp/stud_login") public class StudentLoginController { private static Logger mainLogger = LoggerFactory.getLogger(StudentLoginController.class); @Autowired private LoginService loginService; @Autowired private ReportService reportService; @RequestMapping(method=RequestMethod.GET) public String initForm(Model model, HttpServletRequest req){ LoginForm adminLoginForm = new LoginForm(); model.addAttribute("studLoginForm", adminLoginForm); return "stud_login_form"; } @RequestMapping(method=RequestMethod.POST) public RedirectView submitForm(Model model, @Validated @ModelAttribute LoginForm studLoginForm, BindingResult bindingResult){ model.addAttribute("studLoginForm", studLoginForm); RedirectView redirectView = new RedirectView(); redirectView.setContextRelative(true); if(bindingResult.hasErrors()) { studLoginForm = new LoginForm(); redirectView.setUrl("/smp/stud_login.html"); model.addAttribute("studLoginForm", studLoginForm); } else{ Login login = new Login(); login.setUserName(studLoginForm.getUsername()); login.setPassWord(studLoginForm.getPassword()); if(loginService.isStudentUser(login.getUserName(), login.getPassWord())){ redirectView.setUrl("/smp/stud_enroll.html"); model.addAttribute("studId", reportService.getStudentId(login.getUserName()).getStudentId()); }else{ studLoginForm = new LoginForm(); redirectView.setUrl("/smp/stud_login.html"); } } return redirectView; } }