Advertisement
Guest User

Untitled

a guest
Apr 19th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. package softuniBlog.controller;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.security.access.method.P;
  5. import org.springframework.security.access.prepost.PreAuthorize;
  6. import org.springframework.security.core.context.SecurityContextHolder;
  7. import org.springframework.security.core.userdetails.UserDetails;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.PostMapping;
  13. import softuniBlog.bindingModel.ArticleBindingModel;
  14. import softuniBlog.entity.Article;
  15. import softuniBlog.entity.User;
  16. import softuniBlog.repository.ArticleRepository;
  17. import softuniBlog.repository.UserRepository;
  18.  
  19. @Controller
  20. public class ArticleController {
  21.  
  22. private final ArticleRepository articleRepository;
  23. private final UserRepository userRepository;
  24.  
  25. @Autowired
  26. public ArticleController(ArticleRepository articleRepository, UserRepository userRepository) {
  27. this.articleRepository = articleRepository;
  28. this.userRepository = userRepository;
  29. }
  30.  
  31. @GetMapping("/article/create")
  32. @PreAuthorize("isAuthenticated()")
  33. public String create(Model model){
  34. model.addAttribute("view","article/create");
  35. return "base-layout";
  36. }
  37.  
  38. @PostMapping("/article/create")
  39. @PreAuthorize("isAuthenticated()")
  40. public String createProcess(ArticleBindingModel articleBindingModel) {
  41. UserDetails user = (UserDetails) SecurityContextHolder.getContext()
  42. .getAuthentication().getPrincipal();
  43. User userEntity = this.userRepository.findByEmail(user.getUsername());
  44. Article articleEntity = new Article(
  45. articleBindingModel.getTitle(),
  46. articleBindingModel.getContent(),
  47. userEntity);
  48. this.articleRepository.saveAndFlush(articleEntity);
  49. return "redirect:/";
  50. }
  51.  
  52. @GetMapping("article/details")
  53. @PreAuthorize("isAuthenticated()")
  54. public String details(@PathVariable Integer id, Model model){
  55. Article article = this.articleRepository.findOne(id);
  56.  
  57. if(article == null){
  58. return "redirect:/";
  59. }
  60. model.addAttribute("view", "article/details");
  61. model.addAttribute("article", article);
  62.  
  63. return "base-layout";
  64. }
  65.  
  66. @GetMapping("article/edit/{id}")
  67. @PreAuthorize("isAuthenticated()")
  68. public String edit(@PathVariable Integer id, Model model){
  69. Article article = this.articleRepository.findOne(id);
  70.  
  71. if(article == null){
  72. return "redirect:/";
  73. }
  74.  
  75. model.addAttribute("view", "article/edit");
  76. model.addAttribute("article", article);
  77.  
  78. return "base-layout";
  79. }
  80.  
  81. @PostMapping("article/edit/{id}")
  82. @PreAuthorize("isAuthenticated()")
  83. public String editProcess(@PathVariable Integer id, ArticleBindingModel articleBindingModel){
  84. Article article = this.articleRepository.findOne(id);
  85.  
  86. if(article == null) {
  87. return "redirect:/";
  88. }
  89.  
  90. article.setContent(articleBindingModel.getContent());
  91. article.setTitle(articleBindingModel.getTitle());
  92.  
  93. this.articleRepository.saveAndFlush(article);
  94.  
  95. return "redirect:/";
  96. }
  97.  
  98. @GetMapping("article/delete{id}")
  99. @PreAuthorize("isAuthenticated()")
  100. public String delete(Model model, @PathVariable Integer id){
  101. Article article = this.articleRepository.findOne(id);
  102.  
  103. if(article == null){
  104. return "redirect:/";
  105. }
  106. model.addAttribute("view", "article/delete");
  107. model.addAttribute("article", article);
  108.  
  109. return "base-layout";
  110. }
  111.  
  112. @PostMapping("article/delete{id}")
  113. @PreAuthorize("isAuthenticated()")
  114. public String deleteProcess(Model model,@PathVariable Integer id){
  115. Article article = this.articleRepository.findOne(id);
  116.  
  117. if(article == null){
  118. return "redirect:/";
  119. }
  120.  
  121. this.articleRepository.delete(article);
  122.  
  123. return "redirect:/";
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement