Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package softuniBlog.controller;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.method.P;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.security.core.context.SecurityContextHolder;
- import org.springframework.security.core.userdetails.UserDetails;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import softuniBlog.bindingModel.ArticleBindingModel;
- import softuniBlog.entity.Article;
- import softuniBlog.entity.User;
- import softuniBlog.repository.ArticleRepository;
- import softuniBlog.repository.UserRepository;
- @Controller
- public class ArticleController {
- private final ArticleRepository articleRepository;
- private final UserRepository userRepository;
- @Autowired
- public ArticleController(ArticleRepository articleRepository, UserRepository userRepository) {
- this.articleRepository = articleRepository;
- this.userRepository = userRepository;
- }
- @GetMapping("/article/create")
- @PreAuthorize("isAuthenticated()")
- public String create(Model model){
- model.addAttribute("view","article/create");
- return "base-layout";
- }
- @PostMapping("/article/create")
- @PreAuthorize("isAuthenticated()")
- public String createProcess(ArticleBindingModel articleBindingModel) {
- UserDetails user = (UserDetails) SecurityContextHolder.getContext()
- .getAuthentication().getPrincipal();
- User userEntity = this.userRepository.findByEmail(user.getUsername());
- Article articleEntity = new Article(
- articleBindingModel.getTitle(),
- articleBindingModel.getContent(),
- userEntity);
- this.articleRepository.saveAndFlush(articleEntity);
- return "redirect:/";
- }
- @GetMapping("article/details")
- @PreAuthorize("isAuthenticated()")
- public String details(@PathVariable Integer id, Model model){
- Article article = this.articleRepository.findOne(id);
- if(article == null){
- return "redirect:/";
- }
- model.addAttribute("view", "article/details");
- model.addAttribute("article", article);
- return "base-layout";
- }
- @GetMapping("article/edit/{id}")
- @PreAuthorize("isAuthenticated()")
- public String edit(@PathVariable Integer id, Model model){
- Article article = this.articleRepository.findOne(id);
- if(article == null){
- return "redirect:/";
- }
- model.addAttribute("view", "article/edit");
- model.addAttribute("article", article);
- return "base-layout";
- }
- @PostMapping("article/edit/{id}")
- @PreAuthorize("isAuthenticated()")
- public String editProcess(@PathVariable Integer id, ArticleBindingModel articleBindingModel){
- Article article = this.articleRepository.findOne(id);
- if(article == null) {
- return "redirect:/";
- }
- article.setContent(articleBindingModel.getContent());
- article.setTitle(articleBindingModel.getTitle());
- this.articleRepository.saveAndFlush(article);
- return "redirect:/";
- }
- @GetMapping("article/delete{id}")
- @PreAuthorize("isAuthenticated()")
- public String delete(Model model, @PathVariable Integer id){
- Article article = this.articleRepository.findOne(id);
- if(article == null){
- return "redirect:/";
- }
- model.addAttribute("view", "article/delete");
- model.addAttribute("article", article);
- return "base-layout";
- }
- @PostMapping("article/delete{id}")
- @PreAuthorize("isAuthenticated()")
- public String deleteProcess(Model model,@PathVariable Integer id){
- Article article = this.articleRepository.findOne(id);
- if(article == null){
- return "redirect:/";
- }
- this.articleRepository.delete(article);
- return "redirect:/";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement