diff --git a/src/main/java/site/easystartup/web/controller/UserController.java b/src/main/java/site/easystartup/web/controller/UserController.java index c781190..dfa7c9f 100644 --- a/src/main/java/site/easystartup/web/controller/UserController.java +++ b/src/main/java/site/easystartup/web/controller/UserController.java @@ -6,10 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.util.ObjectUtils; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import site.easystartup.web.domain.model.User; import site.easystartup.web.domain.validation.ResponseErrorValidation; import site.easystartup.web.dto.UserDto; @@ -21,6 +18,7 @@ import site.easystartup.web.project.service.ProjectService; import site.easystartup.web.request.UserRequest; import site.easystartup.web.service.UserService; +import javax.validation.Valid; import java.security.Principal; @RestController @@ -35,8 +33,8 @@ public class UserController { return ResponseEntity.ok().body(modelMapper.map(userService.getUserByUsername(username), UserDto.class)); } - @PostMapping("/user/{username}/edit") - public ResponseEntity userEdit(@PathVariable String username, UserRequest userRequest, + @PutMapping("/user/edit/{username}") + public ResponseEntity userEdit(@PathVariable String username,@Valid @RequestBody UserRequest userRequest, BindingResult bindingResult, Principal principal) { if(!principal.getName().equals(username) && !userService.getUserByPrincipal(principal).isAdmin()) throw new NoPermissionException(String.format("User %s can not edit profile of user %s", principal.getName(), diff --git a/src/main/java/site/easystartup/web/forum/controller/ForumController.java b/src/main/java/site/easystartup/web/forum/controller/ForumController.java index 5d9ea33..7e289cd 100644 --- a/src/main/java/site/easystartup/web/forum/controller/ForumController.java +++ b/src/main/java/site/easystartup/web/forum/controller/ForumController.java @@ -86,7 +86,7 @@ public class ForumController { return ResponseEntity.ok().body(modelMapper.map(forumService.getDiscussionById(discussion_id), DiscussionDto.class)); } - @PostMapping("/{topic_id}/new") + @PostMapping("/new/{topic_id}") public ResponseEntity discussionNew(@PathVariable long topic_id, @Valid @RequestBody DiscussionRequest discussionRequest, BindingResult bindingResult, @@ -98,7 +98,7 @@ public class ForumController { return ResponseEntity.ok().body(modelMapper.map(discussion, DiscussionDto.class)); } - @PutMapping("/discussion/{discussion_id}/edit") + @PutMapping("/discussion/edit/{discussion_id}") public ResponseEntity discussionEdit(@Valid @RequestBody DiscussionRequest discussionRequest, @PathVariable long discussion_id, BindingResult bindingResult, @@ -110,7 +110,7 @@ public class ForumController { return ResponseEntity.ok().body(modelMapper.map(discussionUpdated, DiscussionDto.class)); } - @PostMapping("/discussion/{discussion_id}/new") + @PostMapping("/discussion/new/{discussion_id}") public ResponseEntity messageAdd(@PathVariable long discussion_id, @Valid @RequestBody DiscussionMessageRequest messageRequest, BindingResult bindingResult, @@ -127,7 +127,7 @@ public class ForumController { return ResponseEntity.ok().body(modelMapper.map(forumService.getDiscussionMessageById(message_id), DiscussionMessageDto.class)); } - @PutMapping("/message/{message_id}/edit") + @PutMapping("/message/edit/{message_id}") public ResponseEntity messageEdit(@Valid @RequestBody DiscussionMessageRequest messageRequest, @PathVariable long message_id, BindingResult bindingResult, @@ -139,7 +139,7 @@ public class ForumController { return ResponseEntity.ok().body(modelMapper.map(messageUpdated, DiscussionMessageDto.class)); } - @DeleteMapping("/message/{message_id}/delete") + @DeleteMapping("/message/delete/{message_id}") public ResponseEntity messageDelete(@PathVariable long message_id, Principal principal) { DiscussionMessage message = forumService.getDiscussionMessageById(message_id); User user = userService.getUserByPrincipal(principal); diff --git a/src/main/java/site/easystartup/web/post/controller/PostController.java b/src/main/java/site/easystartup/web/post/controller/PostController.java index 7bd33e2..3dfdab1 100644 --- a/src/main/java/site/easystartup/web/post/controller/PostController.java +++ b/src/main/java/site/easystartup/web/post/controller/PostController.java @@ -47,7 +47,7 @@ public class PostController { if (!ObjectUtils.isEmpty(errors)) return errors; Post post = postService.createPost(postRequest, principal); - return ResponseEntity.ok().body(modelMapper.map(post, PostRequest.class)); + return ResponseEntity.ok().body(modelMapper.map(post, PostDto.class)); } @GetMapping("/user/{username}") @@ -57,17 +57,17 @@ public class PostController { return ResponseEntity.ok().body(posts); } - @GetMapping("/{post_id}/edit/") + @PutMapping("/edit/{post_id}") public ResponseEntity edit(@Valid @RequestBody PostRequest postRequest, BindingResult bindingResult, Principal principal, @PathVariable long post_id) { var errors = responseErrorValidation.mapValidationService(bindingResult); if (!ObjectUtils.isEmpty(errors)) return errors; Post post = postService.edit(postRequest, post_id, principal); - return ResponseEntity.ok().body(modelMapper.map(post, PostRequest.class)); + return ResponseEntity.ok().body(modelMapper.map(post, PostDto.class)); } - @DeleteMapping("/{post_id}/delete") + @DeleteMapping("/delete/{post_id}/") public void delete(@PathVariable long post_id, Principal principal) { Post post = postService.getPostById(post_id); @@ -76,7 +76,7 @@ public class PostController { else postService.delete(post); } - @PutMapping("/{post_id}/like/") + @PutMapping("/like/{post_id}/") public ResponseEntity like(Principal principal, @PathVariable long post_id) { Post post = postService.getPostById(post_id); @@ -84,7 +84,7 @@ public class PostController { return ResponseEntity.ok().body(modelMapper.map(edited, PostRequest.class)); } - @PutMapping("/{post_id}/dislike/") + @PutMapping("/dislike/{post_id}/") public ResponseEntity dislike(Principal principal, @PathVariable long post_id) { Post post = postService.getPostById(post_id); diff --git a/src/main/java/site/easystartup/web/request/UserRequest.java b/src/main/java/site/easystartup/web/request/UserRequest.java index ec05b01..0378cbc 100644 --- a/src/main/java/site/easystartup/web/request/UserRequest.java +++ b/src/main/java/site/easystartup/web/request/UserRequest.java @@ -9,6 +9,7 @@ import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; +import java.io.Serializable; import java.util.List; import java.util.Set; diff --git a/src/main/java/site/easystartup/web/security/SecurityConfig.java b/src/main/java/site/easystartup/web/security/SecurityConfig.java index ad10fe2..74af23f 100644 --- a/src/main/java/site/easystartup/web/security/SecurityConfig.java +++ b/src/main/java/site/easystartup/web/security/SecurityConfig.java @@ -41,6 +41,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .and() .authorizeRequests() .antMatchers(SecurityConstants.SIGN_UP_URLS).permitAll() + .antMatchers("/auth/*").anonymous() .antMatchers("/").permitAll() .anyRequest().authenticated(); http.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class); diff --git a/src/main/java/site/easystartup/web/service/AuthService.java b/src/main/java/site/easystartup/web/service/AuthService.java index 9ffaec4..67af619 100644 --- a/src/main/java/site/easystartup/web/service/AuthService.java +++ b/src/main/java/site/easystartup/web/service/AuthService.java @@ -9,6 +9,7 @@ import site.easystartup.web.domain.model.User; import site.easystartup.web.domain.request.SignupRequest; import site.easystartup.web.repo.UserRepo; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -27,10 +28,8 @@ public class AuthService { user.setEmail(signupRequest.getEmail()); user.setUsername(signupRequest.getUsername()); user.setPassword(passwordEncoder.encode(signupRequest.getPassword())); - Set roles = new HashSet<>(); - signupRequest.getRoles().forEach(role -> roles.add(Role.valueOf(role))); - user.setRoles(roles); - + user.setRoles(Collections.singleton(Role.USER)); + user.setActive(true); return userRepo.save(user); } }