/
dmuruz
/
Course_Service
Обзор
Документация
Войти
/
dmuruz
/
Course_Service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
src/main/java/org/example/controller/AuthController.java
50 строк
2 KB
Danil Muruz
MVP
24 апр 2025, 09:39
24 апр 2025, 09:39
16b1c45
Код
Авторство
О чём код?
package org.example.controller; import org.example.dao.UserRepository; import org.example.dto.RegistrationRequest; import org.example.model.Role; import org.example.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.web.bind.annotation.*; import java.util.Set; @RestController public class AuthController { @Autowired private UserRepository userRepository; @Autowired private PasswordEncoder passwordEncoder; @PostMapping("/register") public ResponseEntity<?> registerUser(@RequestBody RegistrationRequest req) { if (userRepository.findByUsername(req.getUsername()).isPresent()) { return ResponseEntity.badRequest().body("Пользователь уже существует"); } User u = new User(); u.setUsername(req.getUsername()); u.setPassword(passwordEncoder.encode(req.getPassword())); u.setRoles(Set.of(Role.USER)); userRepository.save(u); return ResponseEntity.ok("Пользователь успешно зарегистрирован"); } @PostMapping("/admin/register") @PreAuthorize("hasRole('ADMIN')") public ResponseEntity<?> registerAdmin(@RequestBody RegistrationRequest req) { if (userRepository.findByUsername(req.getUsername()).isPresent()) { return ResponseEntity.badRequest().body("Пользователь уже существует"); } User u = new User(); u.setUsername(req.getUsername()); u.setPassword(passwordEncoder.encode(req.getPassword())); u.setRoles(Set.of(Role.ADMIN)); userRepository.save(u); return ResponseEntity.ok("Пользователь успешно зарегистрирован"); } }