69 lines
2.4 KiB
Java
69 lines
2.4 KiB
Java
package com.eactive.httpmockserver.user.controller;
|
|
|
|
import com.eactive.httpmockserver.user.dto.UserRegisterDTO;
|
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
import com.eactive.httpmockserver.user.mapper.StaffUserMapper;
|
|
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
|
import com.eactive.httpmockserver.user.service.StaffUserService;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.ModelMap;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.Validator;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
@Controller
|
|
public class AdminRegisterController {
|
|
|
|
private final StaffUserService staffUserService;
|
|
|
|
private final StaffUserRepository staffUserRepository;
|
|
|
|
private final Validator validator;
|
|
|
|
private final StaffUserMapper staffUserMapper;
|
|
|
|
public AdminRegisterController(StaffUserService staffUserService, StaffUserRepository staffUserRepository, Validator validator, StaffUserMapper staffUserMapper) {
|
|
this.staffUserService = staffUserService;
|
|
this.staffUserRepository = staffUserRepository;
|
|
this.validator = validator;
|
|
this.staffUserMapper = staffUserMapper;
|
|
}
|
|
|
|
@GetMapping("/admin_register_view.do")
|
|
public String adminRegisterView(ModelMap model) {
|
|
|
|
long users = staffUserRepository.count();
|
|
|
|
if (users == 0) {
|
|
model.addAttribute("user", new StaffUser());
|
|
return "page/users/adminRegister";
|
|
} else {
|
|
return "redirect:/";
|
|
}
|
|
}
|
|
|
|
@PostMapping("/admin_register.do")
|
|
public String adminRegister(@ModelAttribute("user") UserRegisterDTO user,
|
|
BindingResult bindingResult,
|
|
ModelMap model) {
|
|
|
|
if (user == null) {
|
|
return "redirect:/admin_register_view.do";
|
|
}
|
|
|
|
validator.validate(user, bindingResult);
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
model.addAttribute("user", user);
|
|
return "page/users/adminRegister";
|
|
}
|
|
|
|
StaffUser newUser = staffUserMapper.map(user);
|
|
newUser.setUserSecurity("ROLE_ADMIN");
|
|
staffUserService.create(newUser);
|
|
return "redirect:/login";
|
|
}
|
|
}
|