Advertisement
plamen27

AdminUserController JavaAdminBlog

Nov 25th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. package softuniBlog.controller.admin;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.ui.Model;
  7. import org.springframework.util.StringUtils;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import softuniBlog.bindingModel.UserEditBindingModel;
  13. import softuniBlog.entity.Article;
  14. import softuniBlog.entity.Role;
  15. import softuniBlog.entity.User;
  16. import softuniBlog.repository.ArticleRepository;
  17. import softuniBlog.repository.RoleRepository;
  18. import softuniBlog.repository.UserRepository;
  19.  
  20. import java.util.HashSet;
  21. import java.util.List;
  22. import java.util.Set;
  23.  
  24. @Controller
  25. @RequestMapping("/admin/users")
  26. public class AdminUserController {
  27. @Autowired
  28. private UserRepository userRepository;
  29. @Autowired
  30. private ArticleRepository articleRepository;
  31. @Autowired
  32. private RoleRepository roleRepository;
  33.  
  34. @GetMapping("/")
  35. public String listUsers(Model model){
  36. List<User> users = this.userRepository.findAll();
  37.  
  38. model.addAttribute("users", users);
  39. model.addAttribute("view", "admin/user/list");
  40.  
  41. return "base-layout";
  42. }
  43.  
  44. @GetMapping("/edit/{id}")
  45. public String edit(@PathVariable Integer id, Model model){
  46. if(!this.userRepository.exists(id)){
  47. return "redirect:/admin/users/";
  48. }
  49.  
  50. User user = this.userRepository.findOne(id);
  51. List<Role> roles = this.roleRepository.findAll();
  52.  
  53. model.addAttribute("user", user);
  54. model.addAttribute("roles", roles);
  55. model.addAttribute("view", "admin/user/edit");
  56.  
  57. return "base-layout";
  58. }
  59.  
  60. @PostMapping("/edit/{id}")
  61. public String editProcess(@PathVariable Integer id,
  62. UserEditBindingModel userBindingModel){
  63. if(!this.userRepository.exists(id)){
  64. return "redirect:/admin/users/";
  65. }
  66.  
  67. User user = this.userRepository.findOne(id);
  68.  
  69. if(!StringUtils.isEmpty(userBindingModel.getPassword())
  70. && !StringUtils.isEmpty(userBindingModel.getConfirmPassword())){
  71.  
  72. if(userBindingModel.getPassword().equals(userBindingModel.getConfirmPassword())){
  73. BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
  74.  
  75. user.setPassword(bCryptPasswordEncoder.encode(userBindingModel.getPassword()));
  76. }
  77. }
  78.  
  79. user.setFullName(userBindingModel.getFullName());
  80. user.setEmail(userBindingModel.getEmail());
  81.  
  82. Set<Role> roles = new HashSet<>();
  83.  
  84. for (Integer roleId : userBindingModel.getRoles()){
  85. roles.add(this.roleRepository.findOne(roleId));
  86. }
  87.  
  88. user.setRoles(roles);
  89.  
  90. this.userRepository.saveAndFlush(user);
  91.  
  92. return "redirect:/admin/users/";
  93. }
  94.  
  95. @GetMapping("/delete/{id}")
  96. public String delete(@PathVariable Integer id, Model model){
  97. if(!this.userRepository.exists(id)){
  98. return "redirect:/admin/users/";
  99. }
  100.  
  101. User user = this.userRepository.findOne(id);
  102.  
  103. model.addAttribute("user", user);
  104. model.addAttribute("view", "admin/user/delete");
  105.  
  106. return "base-layout";
  107. }
  108.  
  109. @PostMapping("/delete/{id}")
  110. public String deleteProcess(@PathVariable Integer id){
  111. if(!this.userRepository.exists(id)){
  112. return "redirect:/admin/users/";
  113. }
  114. User user = this.userRepository.findOne(id);
  115.  
  116. for(Article article : user.getArticles()){
  117. this.articleRepository.delete(article);
  118. }
  119.  
  120. this.userRepository.delete(user);
  121.  
  122. return "redirect:/admin/users/";
  123. }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement