-
Notifications
You must be signed in to change notification settings - Fork 191
Expand file tree
/
Copy pathAuthController.java
More file actions
66 lines (56 loc) · 2.07 KB
/
AuthController.java
File metadata and controls
66 lines (56 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.example.registrationlogindemo.controller;
import com.example.registrationlogindemo.dto.UserDto;
import com.example.registrationlogindemo.entity.User;
import com.example.registrationlogindemo.service.UserService;
import jakarta.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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 java.util.List;
@Controller
public class AuthController {
private UserService userService;
public AuthController(UserService userService) {
this.userService = userService;
}
@GetMapping("/")
public String home(){
return "index";
}
@GetMapping("/login")
public String loginForm() {
return "login";
}
// handler method to handle user registration request
@GetMapping("register")
public String showRegistrationForm(Model model){
UserDto user = new UserDto();
model.addAttribute("user", user);
return "register";
}
// handler method to handle register user form submit request
@PostMapping("/register/save")
public String registration(@Valid @ModelAttribute("user") UserDto user,
BindingResult result,
Model model){
User existing = userService.findByEmail(user.getEmail());
if (existing != null) {
result.rejectValue("email", null, "There is already an account registered with that email");
}
if (result.hasErrors()) {
model.addAttribute("user", user);
return "register";
}
userService.saveUser(user);
return "redirect:/register?success";
}
@GetMapping("/users")
public String listRegisteredUsers(Model model){
List<UserDto> users = userService.findAllUsers();
model.addAttribute("users", users);
return "users";
}
}