Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package judgev2.web;
- import judgev2.model.binding.UserAddBindingModel;
- import judgev2.model.binding.UserLoginBindingModel;
- import judgev2.model.service.UserServiceModel;
- import judgev2.service.UserService;
- import org.modelmapper.ModelMapper;
- import org.springframework.stereotype.Controller;
- import org.springframework.validation.BindingResult;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.support.RedirectAttributes;
- import javax.servlet.http.HttpSession;
- import javax.validation.Valid;
- @Controller
- @RequestMapping("/users")
- public class UserController {
- private final UserService userService;
- private final ModelMapper modelMapper;
- public UserController(UserService userService, ModelMapper modelMapper) {
- this.userService = userService;
- this.modelMapper = modelMapper;
- }
- @GetMapping("/login")
- public ModelAndView login(@Valid @ModelAttribute("userLoginBindingModel")UserLoginBindingModel userLoginBindingModel,
- BindingResult bindingResult, ModelAndView modelAndView) {
- modelAndView.addObject("userLoginBindingModel", userLoginBindingModel);
- modelAndView.setViewName("login");
- return modelAndView;
- }
- @PostMapping("/login")
- public ModelAndView loginConfirm(@Valid @ModelAttribute("userLoginBindingModel")UserLoginBindingModel userLoginBindingModel,
- BindingResult bindingResult, ModelAndView modelAndView, HttpSession httpSession,
- RedirectAttributes redirectAttributes) {
- if (bindingResult.hasErrors()) {
- redirectAttributes.addAttribute("userLoginBindingModel", userLoginBindingModel);
- modelAndView.setViewName("redirect:/users/login");
- } else {
- UserServiceModel userServiceModel = this.userService.findByUsername(userLoginBindingModel.getUsername());
- if(userServiceModel == null || !userServiceModel.getPassword().equals(userLoginBindingModel.getPassword())) {
- redirectAttributes.addFlashAttribute("notFound", true);
- redirectAttributes.addAttribute("userLoginBindingModel", userLoginBindingModel);
- modelAndView.setViewName("redirect:/users/login");
- } else {
- httpSession.setAttribute("user", userServiceModel);
- httpSession.setAttribute("id", userServiceModel.getId());
- httpSession.setAttribute("role", userServiceModel.getRole().getName());
- modelAndView.setViewName("redirect:/");
- }
- }
- return modelAndView;
- }
- @GetMapping("/register")
- public String register() {
- return "register";
- }
- @PostMapping("/register")
- public ModelAndView registerConfirm(@Valid @ModelAttribute("userAddBindingModel") UserAddBindingModel userAddBindingModel,
- BindingResult bindingResult, ModelAndView modelAndView) {
- if (bindingResult.hasErrors()) {
- modelAndView.setViewName("redirect:/users/register");
- } else {
- UserServiceModel userServiceModel =
- this.userService.registerUser(this.modelMapper.map(userAddBindingModel, UserServiceModel.class));
- modelAndView.setViewName("redirect:/users/login");
- }
- return modelAndView;
- }
- }
Add Comment
Please, Sign In to add comment