| | |
| | | this.mailService = mailService; |
| | | } |
| | | |
| | | /** |
| | | * {@code POST /admin/users} : Creates a new user. |
| | | * <p> |
| | | * Creates a new user if the login and email are not already used, and sends an |
| | | * mail with an activation link. |
| | | * The user needs to be activated on creation. |
| | | * |
| | | * @param userDTO the user to create. |
| | | * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new user, or with status {@code 400 (Bad Request)} if the login or email is already in use. |
| | | * @throws URISyntaxException if the Location URI syntax is incorrect. |
| | | * @throws BadRequestAlertException {@code 400 (Bad Request)} if the login or email is already in use. |
| | | */ |
| | | @PostMapping("/users") |
| | | @PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")") |
| | | public ResponseEntity<User> createUser(@Valid @RequestBody AdminUserDTO userDTO) throws URISyntaxException { |
| | | log.debug("REST request to save User : {}", userDTO); |
| | | |
| | | if (userDTO.getId() != null) { |
| | | throw new BadRequestAlertException("A new user cannot already have an ID", "userManagement", "idexists"); |
| | | // Lowercase the user login before comparing with database |
| | | } else if (userRepository.findOneByLogin(userDTO.getLogin().toLowerCase()).isPresent()) { |
| | | throw new LoginAlreadyUsedException(); |
| | | } else if (userRepository.findOneByEmailIgnoreCase(userDTO.getEmail()).isPresent()) { |
| | | throw new EmailAlreadyUsedException(); |
| | | } else { |
| | | User newUser = userService.createUser(userDTO); |
| | | mailService.sendCreationEmail(newUser); |
| | | return ResponseEntity |
| | | .created(new URI("/api/admin/users/" + newUser.getLogin())) |
| | | .headers(HeaderUtil.createAlert(applicationName, "userManagement.created", newUser.getLogin())) |
| | | .body(newUser); |
| | | } |
| | | } |
| | | // /** |
| | | // * {@code POST /admin/users} : Creates a new user. |
| | | // * <p> |
| | | // * Creates a new user if the login and email are not already used, and sends an |
| | | // * mail with an activation link. |
| | | // * The user needs to be activated on creation. |
| | | // * |
| | | // * @param userDTO the user to create. |
| | | // * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new user, or with status {@code 400 (Bad Request)} if the login or email is already in use. |
| | | // * @throws URISyntaxException if the Location URI syntax is incorrect. |
| | | // * @throws BadRequestAlertException {@code 400 (Bad Request)} if the login or email is already in use. |
| | | // */ |
| | | // @PostMapping("/users") |
| | | // @PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")") |
| | | // public ResponseEntity<User> createUser(@Valid @RequestBody AdminUserDTO userDTO) throws URISyntaxException { |
| | | // log.debug("REST request to save User : {}", userDTO); |
| | | // |
| | | // if (userDTO.getId() != null) { |
| | | // throw new BadRequestAlertException("A new user cannot already have an ID", "userManagement", "idexists"); |
| | | // // Lowercase the user login before comparing with database |
| | | // } else if (userRepository.findOneByLogin(userDTO.getLogin().toLowerCase()).isPresent()) { |
| | | // throw new LoginAlreadyUsedException(); |
| | | // } else if (userRepository.findOneByEmailIgnoreCase(userDTO.getEmail()).isPresent()) { |
| | | // throw new EmailAlreadyUsedException(); |
| | | // } else { |
| | | // User newUser = userService.createUser(userDTO); |
| | | // mailService.sendCreationEmail(newUser); |
| | | // return ResponseEntity |
| | | // .created(new URI("/api/admin/users/" + newUser.getLogin())) |
| | | // .headers(HeaderUtil.createAlert(applicationName, "userManagement.created", newUser.getLogin())) |
| | | // .body(newUser); |
| | | // } |
| | | // } |
| | | |
| | | /** |
| | | * {@code PUT /admin/users} : Updates an existing User. |
| | |
| | | @PutMapping("/users") |
| | | @PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")") |
| | | public ResponseEntity<AdminUserDTO> updateUser(@Valid @RequestBody AdminUserDTO userDTO) { |
| | | log.debug("REST request to update User : {}", userDTO); |
| | | // log.debug("REST request to update User : {}", userDTO); |
| | | Optional<User> existingUser = userRepository.findOneByEmailIgnoreCase(userDTO.getEmail()); |
| | | if (existingUser.isPresent() && (!existingUser.get().getId().equals(userDTO.getId()))) { |
| | | throw new EmailAlreadyUsedException(); |