admin rights

This commit is contained in:
truettwo 2025-02-19 14:00:55 +03:00
parent 8d16d2d456
commit 7b4e949563
7 changed files with 47 additions and 25 deletions

View File

@ -6,6 +6,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
//я поменял на BAD_REQUEST 06.12.24 23:00
@ -88,5 +89,21 @@ public class EmployeeController {
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid login or password");
}
}
@PostMapping("/workers")
public ResponseEntity<?> getAllWorkers(@RequestBody Map<String, String> payload) {
String login = payload.get("login");
String password = payload.get("password");
Optional<Employee> employee = employeeService.findByLogin(login);
if (employee.isPresent() && employee.get().getPassword().equals(password) && employee.get().getRole().equals("admin")) {
List<Employee> allEmployees = employeeService.findAll(); // Получить всех сотрудников
return ResponseEntity.ok(allEmployees);
} else {
return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Access denied");
}
}
}
// made by truettwo and maks ))

View File

@ -15,7 +15,7 @@ public class Code {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private long value; // Убедитесь, что это поле существует
private long value;
// Геттеры и сеттеры для value
}

View File

@ -15,7 +15,7 @@ public class Employee {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String login; // Убедитесь, что это поле существует
private String login;
private String name;
private String photo;
private String position;
@ -23,7 +23,9 @@ public class Employee {
@Column(name = "last_visit")
private LocalDateTime lastVisit;
private String password; // Добавлено поле для пароля
private String password;
private String role;
// Геттеры и сеттеры для login, name, password и других полей
}

View File

@ -4,5 +4,5 @@ import com.example.nto.entity.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
Employee findByLogin(String login); // Этот метод должен искать сотрудника по логину
Employee findByLogin(String login);
}

View File

@ -6,7 +6,7 @@ import java.util.List;
import java.util.Optional;
public interface EmployeeService {
List<Employee> findAll(); // Методы, необходимые в контроллере
List<Employee> findAll();
Optional<Employee> findByLogin(String login);
boolean validateCode(String login, long code);
}

View File

@ -8,6 +8,9 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EmployeeServiceImpl implements EmployeeService {
private final EmployeeRepository employeeRepository;
@ -18,20 +21,17 @@ public class EmployeeServiceImpl implements EmployeeService {
@Override
public List<Employee> findAll() {
return employeeRepository.findAll(); // Реализуем метод findAll
return employeeRepository.findAll();
}
@Override
public Optional<Employee> findByLogin(String login) {
return employeeRepository.findAll()
.stream()
.filter(employee -> employee.getLogin().equals(login))
.findFirst();
return Optional.ofNullable(employeeRepository.findByLogin(login));
}
@Override
public boolean validateCode(String login, long code) {
// Реализуйте вашу логику для валидации кода
return false; // Замените на действительную логику
// Реализация проверки кода
return false;
}
}

View File

@ -1,23 +1,26 @@
-- Создание таблицы employee
CREATE TABLE IF NOT EXISTS employee (
id INT PRIMARY KEY,
login VARCHAR(255),
id INT PRIMARY KEY,
login VARCHAR(255),
name VARCHAR(255),
photo VARCHAR(255),
position VARCHAR(255),
last_visit TIMESTAMP
);
last_visit TIMESTAMP,
password VARCHAR(255),
role VARCHAR(50)
);
-- Вставка данных в таблицу employee
INSERT INTO employee (id, login, name, photo, position, last_visit, password)
INSERT INTO employee (id, login, name, photo, position, last_visit, password, role)
VALUES
(1, 'pivanov', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30', 'password123'),
(2, 'ipetrov', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35', 'password456'),
(3, 'asemenov', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'password789'),
(4, 'afedorov', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'password000');
(1, 'pivanov', 'Иванов Петр Федорович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-12T08:30', 'password123', 'admin'),
(2, 'ipetrov', 'Петров Иван Константинович', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Аналитик', '2024-02-13T08:35', 'password456', 'user'),
(3, 'asemenov', 'Семенов Анатолий Анатольевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Разработчик', '2024-02-13T08:31', 'password789', 'user'),
(4, 'afedorov', 'Федоров Александр Сергеевич', 'https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg', 'Тестировщик', '2024-02-12T08:36', 'password000', 'user');
-- Создание таблицы code
CREATE TABLE IF NOT EXISTS code (
value BIGINT
value BIGINT
);
-- Вставка данных в таблицу code
@ -27,4 +30,4 @@ VALUES
(9223372036854775807),
(1122334455667788990),
(998877665544332211),
(5566778899001122334);
(5566778899001122334);