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.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.servlet.view.RedirectView; @Controller @RequestMapping("/smp/admin_login") public class AdminLoginController { @Autowired private LoginService loginService; @RequestMapping(method=RequestMethod.GET) public String initForm(Model model, HttpServletRequest req){ LoginForm adminLoginForm = new LoginForm(); model.addAttribute("adminLoginForm", adminLoginForm); return "admin_login_form"; } @RequestMapping(method=RequestMethod.POST) public RedirectView submitForm(Model model, @Validated @ModelAttribute LoginForm adminLoginForm, BindingResult bindingResult){ model.addAttribute("adminLoginForm", adminLoginForm); RedirectView redirectView = new RedirectView(); redirectView.setContextRelative(true); if(bindingResult.hasErrors()) { adminLoginForm = new LoginForm(); redirectView.setUrl("/smp/admin_login.html"); model.addAttribute("adminLoginForm", adminLoginForm); } else{ Login login = new Login(); login.setUserName(adminLoginForm.getUsername()); login.setPassWord(adminLoginForm.getPassword()); if(loginService.isAdminUser(login)){ redirectView.setUrl("/smp/admin_pending.html"); }else{ adminLoginForm = new LoginForm(); redirectView.setUrl("/smp/admin_login.html"); } } return redirectView; } }