Files
elink-test-master/src/main/java/com/eactive/httpmockserver/user/controller/AdminRegisterController.java
T
2023-08-22 16:47:02 +09:00

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";
}
}