Changes in / [5b32153:590f667]


Ignore:
Location:
ReserveNGo-backend
Files:
28 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • ReserveNGo-backend/pom.xml

    r5b32153 r590f667  
    5959
    6060        <dependency>
    61             <groupId>io.jsonwebtoken</groupId>
    62             <artifactId>jjwt-api</artifactId>
    63             <version>0.11.5</version>
    64         </dependency>
    65 
    66         <dependency>
    67             <groupId>io.jsonwebtoken</groupId>
    68             <artifactId>jjwt-impl</artifactId>
    69             <version>0.11.5</version>
    70         </dependency>
    71 
    72         <dependency>
    73             <groupId>io.jsonwebtoken</groupId>
    74             <artifactId>jjwt-jackson</artifactId>
    75             <version>0.11.5</version>
    76         </dependency>
    77 
    78         <dependency>
    7961            <groupId>com.h2database</groupId>
    8062            <artifactId>h2</artifactId>
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/ReserveNGoApplication.java

    r5b32153 r590f667  
    1414        SpringApplication.run(ReserveNGoApplication.class, args);
    1515    }
     16
     17    @Bean
     18    PasswordEncoder passwordEncoder() {
     19        return new BCryptPasswordEncoder(10);
     20    }
    1621}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java

    r5b32153 r590f667  
    33import jakarta.annotation.PostConstruct;
    44import mk.ukim.finki.it.reservengo.model.*;
    5 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
    6 import mk.ukim.finki.it.reservengo.model.enumerations.Role;
    7 import mk.ukim.finki.it.reservengo.model.enumerations.Service;
     5import mk.ukim.finki.it.reservengo.model.enumerations.*;
    86import mk.ukim.finki.it.reservengo.repository.*;
    97import org.springframework.security.crypto.password.PasswordEncoder;
     
    1917    public static List<LocalWorker> workers = new ArrayList<>();
    2018    public static List<LocalManager> managers = new ArrayList<>();
     19    public static List<Event> events = new ArrayList<>();
     20    public static List<Reservation> reservations = new ArrayList<>();
    2121    public static List<Local> locals = new ArrayList<>();
    2222
    2323    private final AdminRepository adminRepository;
    2424    private final CustomerRepository customerRepository;
     25    private final EventRepository eventRepository;
    2526    private final LocalManagerRepository localManagerRepository;
    2627    private final LocalRepository localRepository;
    2728    private final LocalWorkerRepository localWorkerRepository;
     29    private final ReservationRepository reservationRepository;
    2830    private final PasswordEncoder passwordEncoder;
    2931
    30     public DataHolder(AdminRepository adminRepository, CustomerRepository customerRepository, LocalManagerRepository localManagerRepository, LocalRepository localRepository, LocalWorkerRepository localWorkerRepository, PasswordEncoder passwordEncoder) {
     32    public DataHolder(AdminRepository adminRepository, CustomerRepository customerRepository, EventRepository eventRepository, LocalManagerRepository localManagerRepository, LocalRepository localRepository, LocalWorkerRepository localWorkerRepository, ReservationRepository reservationRepository, PasswordEncoder passwordEncoder) {
    3133        this.adminRepository = adminRepository;
    3234        this.customerRepository = customerRepository;
     35        this.eventRepository = eventRepository;
    3336        this.localManagerRepository = localManagerRepository;
    3437        this.localRepository = localRepository;
    3538        this.localWorkerRepository = localWorkerRepository;
     39        this.reservationRepository = reservationRepository;
    3640        this.passwordEncoder = passwordEncoder;
    3741    }
     
    5761        customerRepository.saveAll(customers);
    5862
    59         //Local worker
    60         for (int i = 1; i <= 3; i++) {
    61             LocalWorker localWorker = new LocalWorker(
    62                     "FirstName" + i,
    63                     "LastName" + i,
    64                     "Email" + i,
    65                     "Password" + i,
    66                     "PhoneNumber" + i,
    67                     Role.LOCAL_WORKER
    68             );
    69             workers.add(localWorker);
    70         }
    71         localWorkerRepository.saveAll(workers);
    72 
    73         //Local manager
    74         for (int i = 1; i <= 3; i++) {
    75             LocalManager manager = new LocalManager(
    76                     "FirstName" + i,
    77                     "LastName" + i,
    78                     "EmailManager" + i,
    79                     "Password" + i,
    80                     "PhoneNumber" + i,
    81                     Role.LOCAL_MANAGER
    82             );
    83             managers.add(manager);
    84         }
    85         localManagerRepository.saveAll(managers);
    86 
    87         //Local
    88         List<Service> serviceList = new ArrayList<>(List.of(Service.values()));
    89         List<String> localPhotos;
    90         for (int i = 1; i <= 3; i++) {
    91             localPhotos = new ArrayList<>();
    92             for (int j = 1; j <= 3; j++) {
    93                 localPhotos.add("Picture number: " + j);
    94             }
    95             Local local = new Local(
    96                     "Name" + i,
    97                     "Description" + i,
    98                     "Address" + i,
    99                     "WorkingHours" + i,
    100                     serviceList,
    101                     null,
    102                     null,
    103                     localPhotos,
    104                     "MenuPhoto" + i,
    105                     "MenuLink" + i,
    106                     null,
    107                     null,
    108                     null
    109             );
    110             locals.add(local);
    111         }
    112         localRepository.saveAll(locals);
     63        // Print for debugging purposes
     64        System.out.println("Initialization complete!");
    11365    }
    11466}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java

    r5b32153 r590f667  
    11package mk.ukim.finki.it.reservengo.config;
    22
    3 import mk.ukim.finki.it.reservengo.config.filter.JWTAuthenticationFilter;
    43import org.springframework.context.annotation.Bean;
    54import org.springframework.context.annotation.Configuration;
    6 import org.springframework.security.authentication.AuthenticationProvider;
    75import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
    86import org.springframework.security.config.annotation.web.builders.HttpSecurity;
     
    108import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
    119import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer;
    12 import org.springframework.security.config.http.SessionCreationPolicy;
    1310import org.springframework.security.web.SecurityFilterChain;
    14 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
    1511
    1612@Configuration
     
    1814@EnableMethodSecurity
    1915public class WebSecurityConfig {
    20 
    21 
    22     private final JWTAuthenticationFilter jwtAuthFilter;
    23     private final AuthenticationProvider authenticationProvider;
    24 
    25     public WebSecurityConfig(JWTAuthenticationFilter jwtAuthFilter, AuthenticationProvider authenticationProvider) {
    26         this.jwtAuthFilter = jwtAuthFilter;
    27         this.authenticationProvider = authenticationProvider;
    28     }
    2916
    3017    @Bean
     
    3623                )
    3724                .authorizeHttpRequests((requests) -> requests
    38                         .requestMatchers("/api/auth/**", "/h2/**")
     25                        .requestMatchers("/**")
    3926                        .permitAll()
    40                         .anyRequest()
    41                         .authenticated()
     27                )
     28                .formLogin((form) -> form
     29                        .permitAll()
     30                        .defaultSuccessUrl("/", true)
    4231                )
    4332                .logout((logout) -> logout
     
    4635                        .deleteCookies("JSESSIONID")
    4736                        .logoutSuccessUrl("/login")
    48                 )
    49                 .sessionManagement(manager -> manager
    50                         .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
    51                 )
    52                 .authenticationProvider(authenticationProvider)
    53                 .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
    54         ;
     37                );
    5538
    5639        return http.build();
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java

    r5b32153 r590f667  
    1111@AllArgsConstructor
    1212@NoArgsConstructor
    13 public class Admin extends User {
    14     public Admin(String email, String password, Role userRole) {
    15         super(null, null, email, password, null, userRole);
     13public class Admin {
     14    public Admin(String username, String password, Role userRole) {
     15        this.username = username;
     16        this.password = password;
     17        this.userRole = userRole;
    1618    }
     19
     20    @Id
     21    @GeneratedValue(strategy = GenerationType.IDENTITY)
     22    private Long id;
     23
     24    @Column(unique = true)
     25    private String username;
     26
     27    private String password;
     28
     29    @Enumerated(EnumType.STRING)
     30    private Role userRole = Role.ADMIN;
    1731}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Contact.java

    r5b32153 r590f667  
    1616@Embeddable
    1717public class Contact {
     18
    1819    private String phone;
    1920    private String email;
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java

    r5b32153 r590f667  
    1919@NoArgsConstructor
    2020public class Customer extends User {
    21     public Customer(String firstName,
    22                     String lastName,
    23                     String email,
    24                     String password,
    25                     String phoneNumber,
    26                     Role userRole) {
     21    public Customer(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
    2722        super(firstName, lastName, email, password, phoneNumber, userRole);
    2823    }
     
    3328    @OneToMany
    3429    private List<Local> favouriteLocals;
    35 
    36 
    3730}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java

    r5b32153 r590f667  
    1515@NoArgsConstructor
    1616public class LocalManager extends LocalWorker{
    17     public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
    18         super(firstName, lastName, email, password, phoneNumber, userRole);
     17    public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole, Local local, Position position) {
     18        super(firstName, lastName, email, password, phoneNumber, userRole, local, position);
    1919    }
    2020}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalWorker.java

    r5b32153 r590f667  
    1414@AllArgsConstructor
    1515@NoArgsConstructor
    16 public class LocalWorker extends User {
    17     public LocalWorker(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
     16public class LocalWorker extends User{
     17    public LocalWorker(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole, Local local, Position position) {
    1818        super(firstName, lastName, email, password, phoneNumber, userRole);
     19        this.local = local;
     20        this.position = position;
    1921    }
    2022
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java

    r5b32153 r590f667  
    44import lombok.AllArgsConstructor;
    55import lombok.Data;
    6 import lombok.Getter;
    76import lombok.NoArgsConstructor;
    87import mk.ukim.finki.it.reservengo.model.enumerations.Role;
    9 import org.springframework.security.core.GrantedAuthority;
    10 import org.springframework.security.core.authority.SimpleGrantedAuthority;
    11 import org.springframework.security.core.userdetails.UserDetails;
    128
    13 import java.util.Collection;
    14 import java.util.List;
    15 
    16 //@Data
     9@Data
    1710@Entity
    1811@AllArgsConstructor
     
    2013@Inheritance(strategy = InheritanceType.JOINED)
    2114@Table(name = "app_user")
    22 public class User implements UserDetails {
     15public class User {
    2316    public User(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
    2417        this.firstName = firstName;
     
    3023    }
    3124
    32 
    33 
    34     @Getter
    3525    @Id
    3626    @GeneratedValue(strategy = GenerationType.IDENTITY)
     
    5040    @Enumerated(EnumType.STRING)
    5141    private Role userRole;
    52 
    53     @Override
    54     public Collection<? extends GrantedAuthority> getAuthorities() {
    55         return List.of(new SimpleGrantedAuthority(userRole.name())); //check here:IMPORTANT
    56     }
    57 
    58     @Override
    59     public String getPassword() {
    60         return password;
    61     }
    62 
    63     @Override
    64     public String getUsername() {
    65         return email;
    66     }
    67 
    68     @Override
    69     public boolean isAccountNonExpired() {
    70         return true;
    71     }
    72 
    73     @Override
    74     public boolean isAccountNonLocked() {
    75         return true;
    76     }
    77 
    78     @Override
    79     public boolean isCredentialsNonExpired() {
    80         return true;
    81     }
    82 
    83     @Override
    84     public boolean isEnabled() {
    85         return true;
    86     }
    87 
    88     public Long getId() {
    89         return id;
    90     }
    91 
    92     public String getFirstName() {
    93         return firstName;
    94     }
    95 
    96     public String getLastName() {
    97         return lastName;
    98     }
    99 
    100     public String getEmail() {
    101         return email;
    102     }
    103 
    104     public String getPhoneNumber() {
    105         return phoneNumber;
    106     }
    107 
    108     public Role getUserRole() {
    109         return userRole;
    110     }
    111 
    112     @Override
    113     public String toString() {
    114         return "User{" +
    115                 "id=" + id +
    116                 ", firstName='" + firstName + '\'' +
    117                 ", lastName='" + lastName + '\'' +
    118                 ", email='" + email + '\'' +
    119                 ", password='" + password + '\'' +
    120                 ", phoneNumber='" + phoneNumber + '\'' +
    121                 ", userRole=" + userRole +
    122                 '}';
    123     }
    12442}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/Role.java

    r5b32153 r590f667  
    44    ADMIN,
    55    CUSTOMER,
    6     LOCAL_MANAGER,
    7     LOCAL_WORKER
     6    RESTAURANT_MANAGER,
     7    RESTAURANT_WORKER
    88}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/CustomerRepository.java

    r5b32153 r590f667  
    55import org.springframework.stereotype.Repository;
    66
    7 import java.util.Optional;
    8 
    97@Repository
    108public interface CustomerRepository extends JpaRepository<Customer, Long> {
    11 
    12     Optional<Customer> findByEmail(String email);
    139}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalManagerRepository.java

    r5b32153 r590f667  
    55import org.springframework.stereotype.Repository;
    66
    7 import java.util.Optional;
    8 
    97@Repository
    108public interface LocalManagerRepository extends JpaRepository<LocalManager, Long> {
    11     Optional<LocalManager> findByEmail(String email);
    129}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalWorkerRepository.java

    r5b32153 r590f667  
    55import org.springframework.stereotype.Repository;
    66
    7 import java.util.Optional;
    8 
    97@Repository
    108public interface LocalWorkerRepository extends JpaRepository<LocalWorker, Long> {
    11     Optional<LocalWorker> findByEmail(String email);
    129}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/UserRepository.java

    r5b32153 r590f667  
    55import org.springframework.stereotype.Repository;
    66
    7 import java.util.Optional;
    8 
    97@Repository
    108public interface UserRepository extends JpaRepository<User, Long> {
    11     Optional<User> findByEmail(String email);
     9
    1210}
  • ReserveNGo-backend/src/main/resources/application.properties

    r5b32153 r590f667  
    33spring.profiles.active=h2
    44
    5 
Note: See TracChangeset for help on using the changeset viewer.