diff options
Diffstat (limited to 'src/main/java/com/blog/web/controllers')
| -rw-r--r-- | src/main/java/com/blog/web/controllers/ArticleController.java | 46 | ||||
| -rw-r--r-- | src/main/java/com/blog/web/controllers/AuthController.java | 16 |
2 files changed, 28 insertions, 34 deletions
diff --git a/src/main/java/com/blog/web/controllers/ArticleController.java b/src/main/java/com/blog/web/controllers/ArticleController.java index cb00a56..e60be61 100644 --- a/src/main/java/com/blog/web/controllers/ArticleController.java +++ b/src/main/java/com/blog/web/controllers/ArticleController.java @@ -27,7 +27,7 @@ public class ArticleController { @GetMapping("/articles") public String listArticles(Model model) { List<ArticleDto> articles = articleService.findAllArticles(); - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); model.addAttribute("user", user); model.addAttribute("articles", articles); return "index"; @@ -37,16 +37,16 @@ public class ArticleController { public String showArticle(@PathVariable("articleId") long articleId, Model model) { ArticleDto articleDto = articleService.findArticleById(articleId); model.addAttribute("article", articleDto); - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); model.addAttribute("user", user); return "articles/show"; } @GetMapping("/articles/new") public String createArticleForm(Model model) { - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); model.addAttribute("user", user); - Article article = new Article(); + final Article article = new Article(); model.addAttribute("article", article); return "articles/new"; } @@ -54,33 +54,31 @@ public class ArticleController { @PostMapping("/articles/new") public String saveArticle(@Valid @ModelAttribute("article") ArticleDto articleDto, BindingResult result, - Model model) { - if(articleDto.getCreatedBy() == null) { + Model model) + { + // if un-logged in user tries to create an article + // redirect them to login page + UserEntity user = userService.getLoggedInUser(); + if(userService.getLoggedInUser().getId() == null) { return "redirect:/userlogin"; } - if(result.hasErrors()) { + else if(result.hasErrors()) { model.addAttribute("article", articleDto); return "articles/new"; } - articleService.saveArticle(articleDto); - return "redirect:/articles"; - } - - private UserEntity getLoggedInUser() { - UserEntity user = new UserEntity(); - String username = SecurityUtil.getSessionUser(); - if(username != null) { - user = userService.findByUsername(username); + else { + articleService.saveArticle(articleDto); + return "redirect:/articles"; } - return user; } + @GetMapping("/articles/delete/{articleId}") public String deleteArticle(@PathVariable("articleId") Long articleId) { - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); ArticleDto article = articleService.findArticleById(articleId); UserEntity owner = article.getCreatedBy(); - if(owner.getId() == user.getId()) { + if(owner.equals(user)) { articleService.delete(articleId); } return "redirect:/articles"; @@ -88,7 +86,7 @@ public class ArticleController { @GetMapping("/articles/edit/{articleId}") public String editArticleForm(@PathVariable("articleId") long articleId, Model model) { - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); model.addAttribute("user", user); ArticleDto articleDto = articleService.findArticleById(articleId); model.addAttribute("article", articleDto); @@ -109,19 +107,13 @@ public class ArticleController { @GetMapping("/articles/search") public String searchArticle(@RequestParam(value = "search") String search, Model model) { - UserEntity user = getLoggedInUser(); + UserEntity user = userService.getLoggedInUser(); model.addAttribute("user", user); List<ArticleDto> articles = articleService.searchArticles(search); model.addAttribute("articles", articles); return "index"; } - @GetMapping("/userlogin") - public String login(Model model) { - UserEntity user = getLoggedInUser(); - model.addAttribute("user", user); - return "auth/login"; - } @GetMapping("/") public String getArticles() { diff --git a/src/main/java/com/blog/web/controllers/AuthController.java b/src/main/java/com/blog/web/controllers/AuthController.java index bb7cb0d..a654ad1 100644 --- a/src/main/java/com/blog/web/controllers/AuthController.java +++ b/src/main/java/com/blog/web/controllers/AuthController.java @@ -2,8 +2,10 @@ package com.blog.web.controllers; import com.blog.web.dto.RegistrationDto; import com.blog.web.models.UserEntity; +import com.blog.web.security.SecurityUtil; import com.blog.web.services.UserService; import jakarta.validation.Valid; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -19,14 +21,16 @@ public class AuthController { this.userService = userService; } - @GetMapping("/login") - public String loginPage() { + @GetMapping("/userlogin") + public String login(Model model) { + UserEntity user = userService.getLoggedInUser(); + model.addAttribute("user", user); return "auth/login"; } @GetMapping("/register") public String getRegisterForm(Model model) { - RegistrationDto user = new RegistrationDto(); + final RegistrationDto user = new RegistrationDto(); model.addAttribute("user", user); return "auth/register"; } @@ -38,8 +42,7 @@ public class AuthController { UserEntity existingUserEmail = userService.findByEmail(user.getEmail()); if( existingUserEmail != null && - existingUserEmail.getEmail() != null && - !existingUserEmail.getEmail().isEmpty() + StringUtils.isBlank(existingUserEmail.getEmail()) ) { result.rejectValue("email", "There is already a user with this email"); } @@ -47,8 +50,7 @@ public class AuthController { UserEntity existingUsername = userService.findByUsername(user.getUsername()); if( existingUsername != null && - existingUsername.getUsername() != null && - !existingUsername.getUsername().isEmpty() + StringUtils.isBlank(existingUsername.getUsername()) ) { result.rejectValue("username", "There is already a user with this username"); |
