Route pour créer des comptes en tant qu'admin
This commit is contained in:
parent
2259ce7e00
commit
916a8ba2e4
@ -110,6 +110,20 @@ public class AuthorController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/register/admin")
|
||||||
|
public ResponseEntity<Author> authorRegisterAdmin(@RequestBody Author authorToCreate, Authentication authentication) {
|
||||||
|
Author sender = authorService.findByName(authentication.getName()).orElseThrow(() -> new NotFoundException("Author not found"));
|
||||||
|
Assert.isNull(authorToCreate.getId(), "Author id must be null");
|
||||||
|
if (authorService.findByName(authorToCreate.getName()).isPresent()) {
|
||||||
|
throw new AlreadyExistsException("Author already exists");
|
||||||
|
}
|
||||||
|
if (!sender.getRole().equals("ADMIN")) {
|
||||||
|
throw new UnauthorizedExecption("Specified Author is not authorized to do that");
|
||||||
|
}
|
||||||
|
authorToCreate.setPassword(passwordEncoder.encode(authorToCreate.getPassword()));
|
||||||
|
return new ResponseEntity<>(authorRepository.save(authorToCreate).setPassword(""), HttpStatus.CREATED);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/register")
|
@PostMapping("/register")
|
||||||
public ResponseEntity<Author> authorRegister(@RequestBody Author author) {
|
public ResponseEntity<Author> authorRegister(@RequestBody Author author) {
|
||||||
Assert.isNull(author.getId(), "Author id must be null");
|
Assert.isNull(author.getId(), "Author id must be null");
|
||||||
@ -118,7 +132,6 @@ public class AuthorController {
|
|||||||
}
|
}
|
||||||
author.setPassword(passwordEncoder.encode(author.getPassword()));
|
author.setPassword(passwordEncoder.encode(author.getPassword()));
|
||||||
return new ResponseEntity<>(authorRepository.save(author.setRole("READER")).setPassword(""), HttpStatus.CREATED);
|
return new ResponseEntity<>(authorRepository.save(author.setRole("READER")).setPassword(""), HttpStatus.CREATED);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/me", produces = "application/json")
|
@GetMapping(value = "/me", produces = "application/json")
|
||||||
|
Loading…
Reference in New Issue
Block a user