Changeset 01a1ca6


Ignore:
Timestamp:
02/10/23 00:10:41 (21 months ago)
Author:
DenicaKj <dkorvezir@…>
Branches:
master
Children:
73f0dbc
Parents:
5444409
Message:

added authorization

Location:
src/main
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/moviezone/config/WebSecurityConfig.java

    r5444409 r01a1ca6  
    3232        http.csrf().disable()
    3333                .authorizeRequests()
    34                 .antMatchers("/","/**","/home/getFilm/**","/films","/projections" ,"/home", "/assets/**", "/register", "/api/**").permitAll()
    35                 .antMatchers("/admin/**").hasRole("ADMIN")
     34                .antMatchers("/","/films","/home/projections","/home/events","/home/getProjections/**","/home/films","/getFilm/**","/getEvent/**","/login","/events","/projections" ,"/home", "/assets/**", "/register", "/api/**").permitAll()
     35                .antMatchers("/home/getSeats/**","/myTickets","/getProjection/**","/home/makeReservation").hasRole("USER")
     36                .antMatchers("/**").hasRole("ADMIN")
    3637                .anyRequest()
    3738                .authenticated()
  • src/main/java/com/example/moviezone/repository/CustomerRepository.java

    r5444409 r01a1ca6  
    77@Repository
    88public interface CustomerRepository extends JpaRepository<Customer,Integer> {
     9    Customer getByUsername(String username);
    910}
  • src/main/java/com/example/moviezone/service/CustomerService.java

    r5444409 r01a1ca6  
    1111    List<Customer> findAllCustomers();
    1212    Optional<Customer> getCustomerById(int id);
     13    Customer findByUsername(String username);
    1314}
  • src/main/java/com/example/moviezone/service/Impl/CustomerServiceImpl.java

    r5444409 r01a1ca6  
    2626        return customerRepository.findById(id);
    2727    }
     28
     29    @Override
     30    public Customer findByUsername(String username) {
     31        return customerRepository.getByUsername(username);
     32    }
    2833}
  • src/main/java/com/example/moviezone/web/HomeController.java

    r5444409 r01a1ca6  
    259259    }
    260260    @GetMapping("/myTickets")
    261     public  String getMyTicketsPage(Model model,HttpSession session)
    262     {
    263         model.addAttribute("tickets",ticketService.findAllByCustomer((Customer) session.getAttribute("user")));
     261    public  String getMyTicketsPage(Model model,HttpServletRequest request)
     262    {
     263        Customer customer=customerService.findByUsername(request.getRemoteUser());
     264        model.addAttribute("tickets",ticketService.findAllByCustomer(customer));
    264265        model.addAttribute("bodyContent","myTickets");
    265266        return "master-template";
     
    380381    @PostMapping("/makeReservation")
    381382    @Transactional
    382     public String createTicketForReservation(@RequestParam Long film,@RequestParam Long projection,@RequestParam Long id_seat,@RequestParam String discount)
     383    public String createTicketForReservation(@RequestParam Long film,@RequestParam Long projection,@RequestParam Long id_seat,@RequestParam String discount,HttpServletRequest request, HttpServletResponse respons)
    383384    {
    384385        Ticket t;
     386        Customer customer=customerService.findByUsername(request.getRemoteUser());
    385387        Projection projection1=projectionService.findById(projection.intValue());
    386388        if(projection1.getDiscount().equals(discount)){
    387             t=ticketService.saveWithDiscount(LocalDate.now(),customerService.getCustomerById(2).get(),projection1,projection1.getDiscount(),seatService.getSeatById(id_seat.intValue()).get());
     389            t=ticketService.saveWithDiscount(LocalDate.now(),customer,projection1,projection1.getDiscount(),seatService.getSeatById(id_seat.intValue()).get());
    388390        }else{
    389             t=ticketService.saveWithout(LocalDate.now(),customerService.getCustomerById(4).get(),projection1,seatService.getSeatById(id_seat.intValue()).get());
     391            t=ticketService.saveWithout(LocalDate.now(),customer,projection1,seatService.getSeatById(id_seat.intValue()).get());
    390392        }
    391393        Integer price=ticketService.priceForTicket(t.getId_ticket());
    392394        t.setPrice(price);
    393         return "redirect:/home";
     395        return "redirect:/myTickets";
    394396    }
    395397
  • src/main/resources/templates/myTickets.html

    r5444409 r01a1ca6  
    1 <!DOCTYPE html>
    2 <html lang="en">
    3 <head>
    4     <meta charset="UTF-8">
    5     <title>Title</title>
    6 </head>
    7 <body>
     1<style>
     2    .card-horizontal {
     3        display: flex;
     4        flex: 1 1 auto;
     5    }
     6    .card {
     7        transition: all .2s ease-in-out;
     8    }
     9    .card:hover {
     10        transform: scale(1.05);
     11    }
     12    .button {
     13        top:250px;
     14        background-color: #ff5019;
     15        border: none;
     16        color: black;
     17        padding: 10px 20px;
     18        text-align: center;
     19        text-decoration: none;
     20        display: inline-block;
     21        font-size: 16px;
     22        border-radius: 20px;
     23    }
     24    .form-group{
     25        width: 200px;
     26    }
     27</style>
     28<div style="border-radius:30px" >
     29    <div class="row">
     30        <div class="col-12 mt-3" style="padding-left:100px;height:75%;">
     31            <div class="card" th:each="ticket : ${tickets}" style=" border-radius: 30px;width:92%;align-self:center">
     32                <div class="card-horizontal" >
     33                    <div class="card-body">
    834
    9 </body>
    10 </html>
     35                        <h4 class="card-title" >
     36                            <div>
     37                                <span>Филм:</span>
     38                                <span th:text="${ticket.projection.film.name}"></span></div>
     39                            <div>
     40                                <span>Почеток на проекција: </span>
     41                                <span th:text="${ticket.projection.date_time_start}"></span></div>
     42                            <div>
     43                                <span>Крај на проекција: </span>
     44                                <span th:text="${ticket.projection.date_time_end}"></span></div>
     45                        </h4>
     46
     47                        <p class="card-text" th:text="${ticket.projection.type_of_technology}"></p>
     48                        <span>Број на седиште: </span><p class="card-text" th:text="${ticket.seat.seat_number}"></p>
     49                        <span>Цена: </span><p class="card-text" th:text="${ticket.price}"></p>
     50                    </div>
     51                </div>
     52                <div class="card-footer" style="border-bottom-right-radius:30px;border-bottom-left-radius:30px">
     53                    <small>
     54                        <form th:action="@{'/home/getSeats/{id}' (id=${ticket.id_ticket})}"
     55                              th:method="GET">
     56                            <--button th:if="${ticket.projection.date_time_start != null and ticket.projection.date_time_start.isBefore(java.time.LocalDate.now())}" class="button" type="submit">Откажи</--button>
     57                        </form>
     58
     59                    </small>
     60                </div>
     61            </div>
     62        </div>
     63    </div>
     64</div>
Note: See TracChangeset for help on using the changeset viewer.