Autoryzacja początkowo zaimplementowana
This commit is contained in:
@@ -1,9 +1,13 @@
|
||||
package _11.asktpk.artisanconnectbackend.service;
|
||||
|
||||
import _11.asktpk.artisanconnectbackend.dto.AuthRequestDTO;
|
||||
import _11.asktpk.artisanconnectbackend.dto.ClientDTO;
|
||||
import _11.asktpk.artisanconnectbackend.dto.ClientRegistrationDTO;
|
||||
import _11.asktpk.artisanconnectbackend.entities.Client;
|
||||
import _11.asktpk.artisanconnectbackend.repository.ClientRepository;
|
||||
import _11.asktpk.artisanconnectbackend.repository.RolesRepository;
|
||||
import jakarta.persistence.EntityNotFoundException;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
@@ -11,9 +15,13 @@ import java.util.List;
|
||||
@Service
|
||||
public class ClientService {
|
||||
private final ClientRepository clientRepository;
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
private final RolesRepository rolesRepository;
|
||||
|
||||
public ClientService(ClientRepository clientRepository) {
|
||||
public ClientService(ClientRepository clientRepository, PasswordEncoder passwordEncoder, RolesRepository rolesRepository) {
|
||||
this.clientRepository = clientRepository;
|
||||
this.passwordEncoder = passwordEncoder;
|
||||
this.rolesRepository = rolesRepository;
|
||||
}
|
||||
|
||||
private ClientDTO toDto(Client client) {
|
||||
@@ -42,6 +50,16 @@ public class ClientService {
|
||||
return client;
|
||||
}
|
||||
|
||||
private Client fromDto(ClientRegistrationDTO dto) {
|
||||
Client client = new Client();
|
||||
|
||||
client.setFirstName(dto.getFirstName());
|
||||
client.setLastName(dto.getLastName());
|
||||
client.setEmail(dto.getEmail());
|
||||
client.setPassword(dto.getPassword());
|
||||
return client;
|
||||
}
|
||||
|
||||
public List<ClientDTO> getAllClients() {
|
||||
List<Client> clients = clientRepository.findAll();
|
||||
return clients.stream().map(this::toDto).toList();
|
||||
@@ -75,4 +93,26 @@ public class ClientService {
|
||||
public void deleteClient(Long id) {
|
||||
clientRepository.deleteById(id);
|
||||
}
|
||||
|
||||
// И замените метод checkClientCredentials на:
|
||||
public boolean checkClientCredentials(AuthRequestDTO dto) {
|
||||
Client cl = clientRepository.findByEmail(dto.getEmail());
|
||||
if (cl == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return passwordEncoder.matches(dto.getPassword(), cl.getPassword());
|
||||
}
|
||||
|
||||
// При создании нового пользователя не забудьте шифровать пароль:
|
||||
public ClientDTO registerClient(ClientRegistrationDTO clientDTO) {
|
||||
Client client = fromDto(clientDTO);
|
||||
client.setRole(rolesRepository.findRoleById(1L));
|
||||
client.setPassword(passwordEncoder.encode(client.getPassword()));
|
||||
return toDto(clientRepository.save(client));
|
||||
}
|
||||
|
||||
public Client getClientByEmail(String email) {
|
||||
return clientRepository.findByEmail(email);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user