blob: 638a641deabed5230bbf912ae2011a9630fb84a6 (
plain)
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.spring.security.controllers;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import com.example.spring.security.entity.User;
import com.example.spring.security.service.UserService;
import jakarta.validation.Valid;
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/security/users")
@PreAuthorize("hasRole('ADMIN')")
public String showUsers(Model model) {
List<User> users = userService.findAll();
model.addAttribute("users", users);
return "security/users";
}
@GetMapping("/security/user/update/{id}")
@PreAuthorize("hasRole('ADMIN')")
public String showEditForm(@PathVariable Long id, Model model) {
Optional<User> userOpt = userService.findById(id);
User user = userOpt.get();
UserForm form = new UserForm();
form.setId(user.getId());
form.setUsername(user.getUsername());
form.setDescription(user.getDescription());
model.addAttribute("userForm", form);
return "security/user-form";
}
@PostMapping("/security/user/update")
@PreAuthorize("hasRole('ADMIN')")
public String updateUser(@Valid @ModelAttribute UserForm userForm, BindingResult bindingResult,
Model model) {
if (bindingResult.hasErrors()) {
return "security/user-form";
}
userService.updateUser(userForm.getId(), userForm.getDescription());
return "redirect:/security/users";
}
}
|