diff --git a/src/main/java/org/example/config/WebSecurityConfig.java b/src/main/java/org/example/config/WebSecurityConfig.java index 31921fc..48392b2 100644 --- a/src/main/java/org/example/config/WebSecurityConfig.java +++ b/src/main/java/org/example/config/WebSecurityConfig.java @@ -26,7 +26,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { .csrf().disable() .authorizeRequests() .antMatchers("/h2-console/**").permitAll() - .antMatchers("api/**").hasAuthority("ROLE_ADMIN") + .antMatchers("api/passing").hasAuthority("ROLE_ADMIN") .antMatchers("api/{username}/**").hasAnyAuthority("ROLE_USER", "ROLE_ADMIN") .anyRequest().authenticated() .and() diff --git a/src/main/java/org/example/controller/UserController.java b/src/main/java/org/example/controller/UserController.java index 77cc554..306646f 100644 --- a/src/main/java/org/example/controller/UserController.java +++ b/src/main/java/org/example/controller/UserController.java @@ -59,8 +59,8 @@ public class UserController { } @GetMapping("/passing") - public List getAllPassing() { - return passingService.getAllPassing(); + public List getAllPassing(String authority) { + return passingService.getAllPassing(authority); } @GetMapping("/login") diff --git a/src/main/java/org/example/dto/CodeDTO.java b/src/main/java/org/example/dto/CodeDTO.java index 893416c..1ad55b7 100644 --- a/src/main/java/org/example/dto/CodeDTO.java +++ b/src/main/java/org/example/dto/CodeDTO.java @@ -4,6 +4,6 @@ import lombok.Data; @Data public class CodeDTO { - private Long Id; - private Long code; + private Integer Id; + private String code; } diff --git a/src/main/java/org/example/dto/PassingDTO.java b/src/main/java/org/example/dto/PassingDTO.java index 8098f80..db30488 100644 --- a/src/main/java/org/example/dto/PassingDTO.java +++ b/src/main/java/org/example/dto/PassingDTO.java @@ -5,9 +5,10 @@ import org.hibernate.mapping.Set; @Data public class PassingDTO { - private Long id; + private Integer id; private String username; private String type; private String time; - private Long code; + private String code; + private String authority; } diff --git a/src/main/java/org/example/dto/UserDTO.java b/src/main/java/org/example/dto/UserDTO.java index 952c0e3..e79e42e 100644 --- a/src/main/java/org/example/dto/UserDTO.java +++ b/src/main/java/org/example/dto/UserDTO.java @@ -4,11 +4,11 @@ import lombok.Data; @Data public class UserDTO { - private Long id; + private Integer id; private String username; private String name; private String photo; private String position; private String authority; -// private String lastVisit; + private String lastvisit; } diff --git a/src/main/java/org/example/entity/Code.java b/src/main/java/org/example/entity/Code.java index 4035417..c297c4e 100644 --- a/src/main/java/org/example/entity/Code.java +++ b/src/main/java/org/example/entity/Code.java @@ -10,8 +10,8 @@ import javax.persistence.*; public class Code { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private Integer id; @Column(name = "code") - private Long code; + private String code; } diff --git a/src/main/java/org/example/entity/Passing.java b/src/main/java/org/example/entity/Passing.java index 9924e79..568188b 100644 --- a/src/main/java/org/example/entity/Passing.java +++ b/src/main/java/org/example/entity/Passing.java @@ -10,7 +10,7 @@ import javax.persistence.*; public class Passing { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private Integer id; @JoinColumn(name = "username") private String username; @@ -22,5 +22,8 @@ public class Passing { private String type; @Column(name = "code") - private Long code; + private String code; + + @Column(name = "authorities") + private String authority; } diff --git a/src/main/java/org/example/entity/User.java b/src/main/java/org/example/entity/User.java index b7b964d..83a0d9c 100644 --- a/src/main/java/org/example/entity/User.java +++ b/src/main/java/org/example/entity/User.java @@ -16,7 +16,7 @@ import java.util.List; public class User implements UserDetails{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + private Integer id; @Column(name = "username") private String username; @@ -36,8 +36,8 @@ public class User implements UserDetails{ @Column(name = "authorities") private String authority; - // @Column(name = "lastVisit") -// private String lastVisit; + @Column(name = "lastvisit") + private String lastvisit; @Override public Collection getAuthorities() { diff --git a/src/main/java/org/example/repository/CodeRepository.java b/src/main/java/org/example/repository/CodeRepository.java index 12a069f..d155e83 100644 --- a/src/main/java/org/example/repository/CodeRepository.java +++ b/src/main/java/org/example/repository/CodeRepository.java @@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; -public interface CodeRepository extends JpaRepository { - Optional findByCode(Long code); +public interface CodeRepository extends JpaRepository { + Optional findByCode(Integer code); } diff --git a/src/main/java/org/example/repository/PassingRepository.java b/src/main/java/org/example/repository/PassingRepository.java index de80ec6..ca6a0ee 100644 --- a/src/main/java/org/example/repository/PassingRepository.java +++ b/src/main/java/org/example/repository/PassingRepository.java @@ -8,7 +8,9 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; import java.util.Optional; -public interface PassingRepository extends JpaRepository { +public interface PassingRepository extends JpaRepository { + Optional findByAuthority(String authority); + List findByUsername(String login); @Override diff --git a/src/main/java/org/example/repository/UserRepository.java b/src/main/java/org/example/repository/UserRepository.java index cee3e0c..0516a2e 100644 --- a/src/main/java/org/example/repository/UserRepository.java +++ b/src/main/java/org/example/repository/UserRepository.java @@ -5,7 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; -public interface UserRepository extends JpaRepository { +public interface UserRepository extends JpaRepository { Optional findByAuthority(String authority); Optional findByUsername(String username); diff --git a/src/main/java/org/example/service/PassingService.java b/src/main/java/org/example/service/PassingService.java index d7ec70f..e0f95b8 100644 --- a/src/main/java/org/example/service/PassingService.java +++ b/src/main/java/org/example/service/PassingService.java @@ -7,7 +7,7 @@ import org.springframework.data.domain.Pageable; import java.util.List; public interface PassingService { - List getAllPassing(); + List getAllPassing(String authority); List getPassingByUsername(String username); diff --git a/src/main/java/org/example/service/impl/PassingServiceImpl.java b/src/main/java/org/example/service/impl/PassingServiceImpl.java index a40f6db..d31521d 100644 --- a/src/main/java/org/example/service/impl/PassingServiceImpl.java +++ b/src/main/java/org/example/service/impl/PassingServiceImpl.java @@ -25,10 +25,10 @@ public class PassingServiceImpl implements PassingService { private final UserRepository userRepository; @Override - public List getAllPassing() { - Optional userOptional = userRepository.findByAuthority("ROLE_ADMIN"); - if (userOptional.isEmpty()) { - throw new AuthorityNotFoundException("Нет прав"); + public List getAllPassing(String authority) { + Optional passingOptional = passingRepository.findByAuthority("ROLE_ADMIN"); + if (passingOptional.isEmpty()) { + throw new AuthorityNotFoundException("Ошибка доступа"); } return passingRepository.findAll().stream().map(PassingMapper::convertToDto).collect(Collectors.toList()); diff --git a/src/main/java/org/example/util/PassingMapper.java b/src/main/java/org/example/util/PassingMapper.java index 87187f0..16eb588 100644 --- a/src/main/java/org/example/util/PassingMapper.java +++ b/src/main/java/org/example/util/PassingMapper.java @@ -13,6 +13,7 @@ public class PassingMapper { dto.setType(passing.getType()); dto.setTime(passing.getTime()); dto.setCode(passing.getCode()); + dto.setAuthority(passing.getAuthority()); return dto; } diff --git a/src/main/java/org/example/util/UserMapper.java b/src/main/java/org/example/util/UserMapper.java index 84a9e33..ebbdd11 100644 --- a/src/main/java/org/example/util/UserMapper.java +++ b/src/main/java/org/example/util/UserMapper.java @@ -14,7 +14,7 @@ public class UserMapper { dto.setPhoto(user.getPhoto()); dto.setPosition(user.getPosition()); dto.setAuthority(user.getAuthority()); -// dto.setLastVisit(user.getLastVisit()); + dto.setLastvisit(user.getLastvisit()); return dto; } diff --git a/src/main/resources/db.changelog/1.0/2025-02-18--0001-user.xml b/src/main/resources/db.changelog/1.0/2025-02-18--0001-user.xml index fd8e99d..dd57b7a 100644 --- a/src/main/resources/db.changelog/1.0/2025-02-18--0001-user.xml +++ b/src/main/resources/db.changelog/1.0/2025-02-18--0001-user.xml @@ -31,7 +31,7 @@ - + diff --git a/src/main/resources/db.changelog/1.0/2025-02-19--0003-passing.xml b/src/main/resources/db.changelog/1.0/2025-02-19--0003-passing.xml index ad75696..bf78d08 100644 --- a/src/main/resources/db.changelog/1.0/2025-02-19--0003-passing.xml +++ b/src/main/resources/db.changelog/1.0/2025-02-19--0003-passing.xml @@ -27,6 +27,9 @@ + + + diff --git a/src/main/resources/db.changelog/data/csv/2025-02-19--0004-passing-data.csv b/src/main/resources/db.changelog/data/csv/2025-02-19--0004-passing-data.csv index 05cf7c1..e9e9014 100644 --- a/src/main/resources/db.changelog/data/csv/2025-02-19--0004-passing-data.csv +++ b/src/main/resources/db.changelog/data/csv/2025-02-19--0004-passing-data.csv @@ -1,5 +1,5 @@ -username;type;time;code -pivanov;Карта;12:00;1234567890123456789 -ipetrov;Вход со смартфона;13:00;9223372036854775807 -asemenov;Карта;10:00;1234567890123456789 -pivanov;Вход со смартфона;15:00;1234567890123456789 +username;type;time;code;authorities +pivanov;Карта;12:00;1234567890123456789;ROLE_ADMIN +ipetrov;Вход со смартфона;13:00;9223372036854775807;ROLE_USER +asemenov;Карта;10:00;1234567890123456789;ROLE_USER +pivanov;Вход со смартфона;15:00;1234567890123456789;ROLE_USER